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角色。我正在考虑将它包含在角色的 override_attributes 部分,frontend但我不确定这是否是最好的方法。

4

1 回答 1

0

请注意,它提供了一个名为nginx_vhostnginx_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
于 2013-10-23T15:01:51.840 回答