我正在使用nginx_vhost配方将其应用于两个不同的角色,比方说frontend
和web
。 nginx_vhost recipe在其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 :(得分:0)
请注意,它提供了来自nginx_vhost cookbook的名为nginx_vhost
的新资源,它应该用于您的自定义食谱中:
# foo::frontend
nginx_vhost "app_myproject.com" do
sockets [ "unix:/www/myproject.com/control/shared/sockets/unicorn.sock" ]
end
您可以为角色 web 中使用的配方定义另一个资源:
# foo:web
nginx_vhost "web.myproject.com" do
port 80
stream false # results no stream section in vhost config
end