Tôi đang sử dụng Berkshelf, Chef và Vagrant và tôi đang cố gắng định cấu hình trang web tùy chỉnh chạy trên nginx. Tôi đang sử dụng công thức nginx opscode và sau đó viết công thức của riêng tôi cho trang web tùy chỉnh. Khi tôi chạy lang thang lên tôi nhận được một lỗi về việc không vô hiệu hóa trang web nginx mặc định. Tôi đã tìm thấy một số gợi ý khác nhau nhưng dường như không có gì hoạt động.Làm thế nào để vô hiệu hóa trang web nginx mặc định khi sử dụng Chef và Vagrant?
Lỗi:
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
My Berksfile:
site :opscode
metadata
cookbook 'nginx'
Các 'vai trò/web.json' vai trò tôi định nghĩa:
{
"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]"
]
}
Dưới đây là công thức nấu ăn/default/default.rb cho trang web nginx Tôi đang thêm:
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
(P.S. Tôi biết các quyền tập tin cần phải được thay đổi, tôi đã chỉ được loay hoay với rất nhiều điều, tôi sẽ cập nhật những lần tôi nhận được mọi thứ khác làm việc)
Và đây là thuộc tính/default.rb:
override['nginx']['enable_default_site'] = false
Bạn có thể thấy tôi đã cố vô hiệu hóa trang web mặc định trong web.json, các thuộc tính và công thức riêng nhưng không ai trong số chúng dính vào.
Tôi không có nút hoặc nút solo được xác định và tôi không chắc đó có phải là vấn đề hay không. Vấn đề chính của tôi với âm đạo cho đến nay là những khả năng vô tận về cách làm việc. Không có hai ví dụ được thực hiện trong cùng một cách và tôi không chắc chắn những gì được coi là 'tốt nhất' hoặc 'phải' cách để đi.
Tôi thấy rằng vô hiệu hóa trang web mặc định qua 'nút ['nginx'] ['enable_default_site']' thường hoạt động - có thể bạn có một liên kết tượng trưng còn sót lại trong các trang web được bật từ lần chạy trước đó không được đầu bếp quản lý nữa (Đầu bếp không xóa mọi thứ chỉ vì bạn loại bỏ khai báo tài nguyên)? – cmur2
Tôi đã thực hiện một âm mưu phá hủy để đảm bảo. Nó chắc chắn có vẻ là tạo ra các liên kết trong các trang web kích hoạt mỗi lần tôi cung cấp nhưng tôi wil kiểm tra lại. –
Tôi nghĩ câu trả lời của Cliff Erson là chính xác. Có lẽ bạn muốn chấp nhận nó? – kioopi