“ ไฟล์คอนฟิกูเรชัน /etc/nginx/nginx.conf การทดสอบล้มเหลว”: ฉันจะทราบได้อย่างไรว่าเหตุใดจึงเกิดขึ้น


93

ฉันเป็น nginx noob ที่ลองใช้บทช่วยสอนนี้บน nginx 1.1.19 บน ubuntu 12.04 ฉันมีนี้ไฟล์ config Nginx

เมื่อฉันรันคำสั่งนี้การทดสอบล้มเหลว:

$ sudo service nginx restart
Restarting nginx: nginx: [crit] pread() "/etc/nginx/sites-enabled/csv" failed (21: Is a directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

ฉันจะรู้ได้อย่างไรว่าทำไมการทดสอบ nginx.conf จึงล้มเหลว


1
คุณยังมี "ค่าเริ่มต้น" ใน "/ etc / ngix / sites-enabled" หรือไม่
RickyA

@RickyA คุณหมายถึงไฟล์ "default" หรือเปล่า? ใช่ฉันยังมีไฟล์นั้นอยู่ในไดเร็กทอรีนั้น ฉันย้ายไฟล์นั้นและทำการรีโหลด nginx -s และยังคงเห็นพฤติกรรมเดียวกันจากเซิร์ฟเวอร์
bernie2436

ข้อผิดพลาดกล่าวถึงไฟล์ csv ตรวจสอบไฟล์นั้นในไซต์ที่เปิดใช้งาน
Mohammad AbuShady

1
Ad sudo service nginx restart) Nginx มีเครื่องมือ CLI เช่นกัน: nginx -s reloadเพื่อโหลดการกำหนดค่าใหม่ในกรณีที่มีการเปลี่ยนแปลง เร็วกว่ามาก
kaiser

คำตอบ:


171

sudo nginx -t ควรทดสอบไฟล์ทั้งหมดและส่งคืนข้อผิดพลาดและตำแหน่งคำเตือน


2
กำลังทดสอบเพียงไฟล์เดียวคือ /etc/nginx/nginx.conf แต่ฉันจะทดสอบไซต์ที่เปิดใช้งาน / ค่าเริ่มต้นได้อย่างไร
aitchkhan

4
คิดว่ามันจะทดสอบทั้งหมดตราบใดที่รวมอยู่ในไฟล์เริ่มต้น (ซึ่งฉันคิดว่าเป็น?) หากคุณไม่ได้ใช้พา ธ ไฟล์กำหนดค่าเริ่มต้นให้ลองใช้-cแฟnginx -c /etc/nginx/sites-enabled/default -t
ล็

สามารถยืนยันสิ่งที่ @MohammadAbuShady กล่าว แม้ว่า manpage -tจะบอกอย่างคลุมเครือว่าDon't run เพียงแค่ทดสอบไฟล์กำหนดค่า nginx ตรวจสอบการกำหนดค่าเพื่อหาไวยากรณ์ที่ถูกต้องจากนั้นพยายามเปิดไฟล์ที่อ้างถึงในการกำหนดค่า ไฟล์ไม่เพียงแค่ตรวจสอบว่ามีอยู่จริง แต่แยกวิเคราะห์ ตามที่คาดไว้รหัสทางออกคือ 1 หากพบข้อผิดพลาดและเป็น 0
Günther Eberl

9

คำสั่งเฉพาะนี้ใช้ได้ผลสำหรับฉัน sudo apt-get remove --purge nginx nginx-full nginx-common

และ sudo apt-get install nginx

เครดิตสำหรับคำตอบนี้เกี่ยวกับstackexchnage


0

หากคุณต้องการตรวจสอบข้อผิดพลาดทางไวยากรณ์สำหรับไฟล์ nginx คุณสามารถใช้ตัวเลือก -c

[root@server ~]# sudo nginx -t -c /etc/nginx/my-server.conf
nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful
[root@server ~]# 

-1

แสดงไฟล์และติดตามข้อผิดพลาด

 systemctl status nginx.service

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม เมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด ๆ ; แทนที่จะให้คำตอบที่ไม่จำเป็นต้องชี้แจงจากผู้ถาม - จากการตรวจสอบ
น่าน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.