[英]How to disable default nginx site when using Chef and Vagrant?
我正在使用Berkshelf,Chef和Vagrant,我正在嘗試配置在nginx上運行的自定義站點。 我正在使用opscode nginx配方,然后為自定義站點編寫自己的配方。 當我運行vagrant時,我得到一個關於不禁用默認nginx站點的錯誤。 我發現了幾個不同的建議,但似乎沒有任何效果。
錯誤:
STDOUT:
STDERR: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites- enabled/kyleboon.me:2
nginx: configuration file /etc/nginx/nginx.conf test failed
我的Berksfile:
site :opscode
metadata
cookbook 'nginx'
我定義的'roles / web.json'角色:
{
"name": "web",
"chef_type": "role",
"json_class": "Chef::Role",
"description": "The base role for systems that serve HTTP traffic",
"default_attributes": {
"nginx": {
"default_site_enabled": false
},
"app": {
"name": "kyleboon.me",
"web_dir": "/var/data/www/kyleboon.me"
},
"user":{
"name": "vagrant"
}
},
"run_list": [
"recipe[nginx]",
"recipe[kyleboon.me]"
]
}
這是我添加的nginx網站的recipes / default / default.rb:
nginx_site 'default' do
action :disable
end
%w(public logs).each do |dir|
directory "#{node.app.web_dir}/#{dir}" do
owner node.user.name
mode "0755"
recursive true
end
end
template "#{node.nginx.dir}/sites-available/kyleboon.me" do
source "site.erb"
mode 0777
owner node.nginx.user
group node.nginx.user
end
nginx_site "kyleboon.me"
cookbook_file "#{node.app.web_dir}/public/index.html" do
source "index.html"
mode 0755
owner node.user.name
end
(PS我知道文件權限需要更改,我只是在擺弄很多東西,我會在其他所有工作后更新這些內容)
這是attributes / default.rb:
override['nginx']['enable_default_site'] = false
你可以看到我試圖在web.json中禁用默認站點,屬性和配方本身,但沒有一個堅持。
我沒有定義節點或獨奏節點,我不確定這是否是一個問題。 到目前為止,我對流浪者的主要問題是如何做事的無限可能性。 沒有兩個例子以同樣的方式完成,我不確定什么被認為是“最好”或“正確”的方式。
您可以使用nginx_site及其名稱按名稱禁用任何nginx站點。 您遇到的問題是因為nginx_site 定義實際上是在尋找將enable參數設置為true或false而不是將action參數設置為:disabled。
要禁用默認站點,請添加到您的配方:
nginx_site 'default' do
enable false
end
從nginx opscode cookbook的1.7.1版開始,這對我有用。 我不知道這是否適用於社區提供的版本,因為它似乎已有幾個月了。
要獲取最新版本,請添加到您的Berksfile:
cookbook 'nginx', git: 'https://github.com/opscode-cookbooks/nginx'
希望有幫助:)
我收到了同樣的錯誤,但我沒有啟用默認站點。 相反,它來自/etc/nginx/conf.d/default.conf
! 我不得不求助於
file "/etc/nginx/conf.d/default.conf" do
action :delete
end
這是來自我的盒子上安裝nginx食譜的RHEL包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.