2013-10-22 26 views
0

我正在使用nginx_vhost配方將它應用於兩個不同的角色,比如說frontendweb。 nginx_vhost配方有以下它的模板代碼vhost.conf文件:根據角色包含配方的一部分

<% if @upstream %> 
upstream <%= @name %> { 
<% @servers.each do |server| -%> 
    server <%= server %> fail_timeout=0; 
<% end -%> 
<% @sockets.each do |socket| -%> 
    server <%= socket %> fail_timeout=0; 
<% end -%> 
} 
<% end %> 

上面的代碼會寫:

upstream app_myproject.com { 
    server unix:/www/myproject.com/control/shared/sockets/unicorn.sock fail_timeout=0; 
} 

的問題是:我只需要對這個角色frontend但不是在web作用。我正在考慮將它包含在frontend角色的override_attributes部分,但我不確定這是否是最好的方式。

回答

0

注意,它提供了一個從nginx_vhost食譜名爲nginx_vhost新的資源,它應該被用來爲您的自定義的食譜是這樣的:

# foo::frontend 
nginx_vhost "app_myproject.com" do 
    sockets [ "unix:/www/myproject.com/control/shared/sockets/unicorn.sock" ] 
end 

您可以定義其他資源在您的角色網中使用的配方

# foo:web 
nginx_vhost "web.myproject.com" do 
    port 80 
    stream false # results no stream section in vhost config 
end 
+0

感謝您的回答。它給了我一些解決問題的指針。 –