nginx- lỗi máy chủ mặc định trùng lặp


105

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?


4
Đăng cấu hình đầy đủ của bạn. Mỗi loại server {}nên có listenchỉ thị riêng .
Marki555

Nếu bạn đang chỉnh sửa nội dung nào đó trong các trang web được kích hoạt và kết nối bị đóng đột ngột, bạn có thể kết thúc bằng tệp tự động lưu ở đó từ trình chỉnh sửa văn bản, vì vậy bạn sẽ kết thúc với hầu hết các cấu hình được sao chép, chỉ cần xóa tệp đó (đối với nano file.save)
LuisF

Câu trả lời:


196

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 định address: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

Cảm ơn. Nó thực sự hữu ích.
Koushik Das

29
Chỉ cần được rõ ràng nó là 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;
Eborbob

1
Cảm ơn, bạn đã giúp tôi. Trong trường hợp của tôi, tôi đã tìm thấy một dublicate vào /etc/nginx/sites-enabled/default.save
Andrew Grow

1
Thêm vào nhận xét của @ Eborbob, 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.
davidjb 21/09/17

2
lệnh grep chỉ là một tấm vé. đó là những điều đơn giản, nhờ
FireDragon

5

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

5

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à:

  1. cd / etc / nginx / sites-enable
  2. bỏ liên kết mặc định
  3. khởi động lại dịch vụ nginx

4

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!

Pic of Console trên Windows 10 bằng Bitvise


Đây là câu trả lời đơn giản phù hợp với tôi. Tôi phải truy cập / etc / nginx / sites-enable / và rm -R previousServerFolderNamesau đó làm sudo service nginx restartđể systemctl status nginxhiển thị "hoạt động (đang chạy)"
Roly Poly
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.