Trong nhật ký lỗi của tôi, tôi nhận được
[khẩn cấp] 10619 # 0: máy chủ mặc định trùng lặp cho 0.0.0.0:80 trong /etc/nginx/sites-enabled/mysite.com:4
trên Dòng 4 tôi có:
server_name mysite.com www.mysite.com;
Bất kỳ đề xuất?
Trong nhật ký lỗi của tôi, tôi nhận được
[khẩn cấp] 10619 # 0: máy chủ mặc định trùng lặp cho 0.0.0.0:80 trong /etc/nginx/sites-enabled/mysite.com:4
trên Dòng 4 tôi có:
server_name mysite.com www.mysite.com;
Bất kỳ đề xuất?
Câu trả lời:
Bạn có thể có các tệp khác (chẳng hạn như defaultcấu hình) /etc/nginx/sites-enabledcần được xóa.
Sự cố này là do sự lặp lại của default_servertham số được cung cấp cho một hoặc nhiều lệnh listentrong tệp của bạn. Bạn có thể sẽ thấy chỉ thị xung đột này đọc một cái gì đó tương tự như:
listen 80 default_server;
Như tài liệu mô-đun lõi nginx cholisten các trạng thái:
Các
default_servertham số, nếu có, sẽ gây ra các máy chủ để trở thành máy chủ mặc định cho địnhaddress:portcặp. Nếu không có lệnh nào códefault_servertham số thì máy chủ đầu tiên cóaddress:portcặp này sẽ là máy chủ mặc định cho cặp này.
Điều này có nghĩa là phải có một tệp hoặc serverkhối khác được xác định trong cấu hình của bạn với default_serverthiết lập cho cổng 80. Nginx gặp phải điều đó đầu tiên trước mysite.comtệp của bạn, vì vậy hãy thử xóa hoặc điều chỉnh cấu hình khác đó.
Nếu bạn đang đấu tranh để tìm nơi đặt các lệnh và tham số này, hãy thử tìm kiếm như sau:
grep -R default_server /etc/nginx
default_servertừ khóa mà chỉ có thể xuất hiện trong một cấu hình - bạn có thể có nhiều trang web được xác định vớilisten 80;
default_servertham số chỉ có thể xuất hiện một lần cho mỗi address:portcặp. Điều này có nghĩa là có thể (và phổ biến) default_serverxuất hiện nhiều lần trong một cấu hình nginx tổng thể, nhưng áp dụng cho các IP / cổng khác nhau.
Thực thi điều này tại thiết bị đầu cuối để xem các cấu hình xung đột đang lắng nghe cùng một cổng:
grep -R default_server /etc/nginx
Hệ điều hành Debian 10 + nginx. Trong trường hợp của tôi, tôi đã hủy liên kết trang "mặc định" là:
Nếu bạn đang sử dụng Digital Ocean, điều này có nghĩa là bạn cần truy cập / etc / nginx / sites-enable / và sau đó XÓA bằng cách sử dụng rm -R digitalocean và mặc định
Nó đã sửa nó cho tôi!
rm -R previousServerFolderNamesau đó làm sudo service nginx restartđể systemctl status nginxhiển thị "hoạt động (đang chạy)"
server {}nên cólistenchỉ thị riêng .