ในบันทึกข้อผิดพลาดของฉันฉันได้รับ
[Emerg] 10619 # 0: เซิร์ฟเวอร์เริ่มต้นที่ซ้ำกันสำหรับ 0.0.0.0:80 ใน /etc/nginx/sites-enabled/mysite.com:4
ในบรรทัดที่ 4 ฉันมี:
server_name mysite.com www.mysite.com;
ข้อเสนอแนะใด ๆ ?
ในบันทึกข้อผิดพลาดของฉันฉันได้รับ
[Emerg] 10619 # 0: เซิร์ฟเวอร์เริ่มต้นที่ซ้ำกันสำหรับ 0.0.0.0:80 ใน /etc/nginx/sites-enabled/mysite.com:4
ในบรรทัดที่ 4 ฉันมี:
server_name mysite.com www.mysite.com;
ข้อเสนอแนะใด ๆ ?
คำตอบ:
คุณน่าจะมีไฟล์อื่น ๆ (เช่นการdefault
กำหนดค่า) อยู่ในไฟล์/etc/nginx/sites-enabled
ที่ต้องลบออก
ปัญหานี้เกิดจากการทำซ้ำของdefault_server
พารามิเตอร์ที่ให้มากับlisten
คำสั่งอย่างน้อยหนึ่งคำสั่งในไฟล์ของคุณ คุณอาจพบว่าคำสั่งที่ขัดแย้งกันนี้อ่านสิ่งที่คล้ายกับ:
listen 80 default_server;
ตามเอกสารประกอบโมดูลหลักของ nginx สำหรับlisten
สถานะ:
default_server
พารามิเตอร์ถ้าปัจจุบันจะทำให้เซิร์ฟเวอร์ที่จะกลายเป็นเซิร์ฟเวอร์เริ่มต้นสำหรับการระบุaddress:port
คู่ หากไม่มีคำสั่งใดที่มีdefault_server
พารามิเตอร์เซิร์ฟเวอร์แรกที่มีaddress:port
คู่จะเป็นเซิร์ฟเวอร์เริ่มต้นสำหรับคู่นี้
ซึ่งหมายความว่าจะต้องมีไฟล์หรือserver
บล็อกอื่นที่กำหนดไว้ในคอนฟิกูเรชันของคุณโดยdefault_server
กำหนดไว้สำหรับพอร์ต 80 nginx พบสิ่งนั้นก่อนmysite.com
ไฟล์ของคุณดังนั้นให้ลองลบหรือปรับการกำหนดค่าอื่น ๆ นั้น
หากคุณกำลังดิ้นรนเพื่อหาตำแหน่งที่กำหนดคำสั่งและพารามิเตอร์เหล่านี้ให้ลองค้นหาดังนี้:
grep -R default_server /etc/nginx
default_server
คำหลักที่สามารถปรากฏในการกำหนดค่าเดียวเท่านั้น - คุณสามารถกำหนดหลายไซต์ด้วยlisten 80;
default_server
พารามิเตอร์สามารถปรากฏได้เพียงครั้งเดียวสำหรับแต่ละaddress:port
คู่ ซึ่งหมายความว่าเป็นไปได้ (และทั่วไป) ที่จะdefault_server
นำเสนอหลายครั้งในการกำหนดค่า nginx โดยรวม แต่ใช้กับ IP / พอร์ตที่แตกต่างกัน
ระบบปฏิบัติการ Debian 10 + nginx ในกรณีของฉันฉันยกเลิกการเชื่อมโยงหน้า "เริ่มต้น" เป็น:
ดำเนินการที่เทอร์มินัลเพื่อดูการกำหนดค่าที่ขัดแย้งกันซึ่งฟังพอร์ตเดียวกัน:
grep -R default_server /etc/nginx
หากคุณอยู่ใน Digital Ocean หมายความว่าคุณต้องไปที่ / etc / nginx / sites-enabled / จากนั้น REMOVE โดยใช้ rm -R digitalocean และค่าเริ่มต้น
มันแก้ไขให้ฉัน!
rm -R previousServerFolderName
แล้วsudo service nginx restart
ทำการsystemctl status nginx
แสดง "active (running)"
server {}
ควรมีlisten
คำสั่งของตัวเอง