ฉันจะหาบันทึกข้อผิดพลาดของ nginx ได้อย่างไรโดยใช้ fastcgi และ django


359

ฉันใช้ django กับ fastcgi + nginx ฉันต้องการทราบว่าบันทึก (ข้อผิดพลาด) เก็บไว้ที่ไหนในกรณีนี้

คำตอบ:


481

ข้อผิดพลาดจะถูกเก็บไว้ในล็อกไฟล์ nginx คุณสามารถระบุได้ในรูทของไฟล์กำหนดค่า nginx

error_log  /var/log/nginx/nginx_error.log  warn;

บนMac Os Xด้วยHomebrewจะพบไฟล์บันทึกตามค่าเริ่มต้นที่ตำแหน่งต่อไปนี้:

/usr/local/var/log/nginx

11
นั่นอาจจะขึ้นอยู่กับรุ่น แต่บันทึกของฉันคือภายใน:/opt/nginx/logs/error.log
jmarceli

49
บน Mac OS X ด้วย homebrew: / usr / local / var / log / nginx ดูคำตอบ
Félix Gagnon-Grenier

11
บน Ubuntu /var/log/nginx/error.logผมมีมันอยู่ใน เป็นการดีที่สุดที่จะตรวจสอบnginx.confไฟล์และค้นหาการerror_logตั้งค่า
MarthyM

คุณพบข้อมูลนั้นจากที่ใด
etiennejcharles

300

ฉันกำลังมองหาทางออกที่แตกต่าง

ตามค่าเริ่มต้นบันทึกข้อผิดพลาดก่อนที่จะตั้งค่าใด ๆ บนระบบของฉัน (x86 Arch) พบได้ใน:

/var/log/nginx/error.log

1
เห็นได้ชัดว่านี่สามารถกำหนดค่าได้ในเวลารวบรวมด้วย--error-log-pathตัวเลือกการรวบรวมtrac.nginx.org/nginx/ticket/147
Michael Berkowski

บนราสเบอร์รี่ pi3 เป็นที่ตั้ง
Bludau Media

161

คุณสามารถใช้lsof(รายการของไฟล์ที่เปิด) ในกรณีส่วนใหญ่เพื่อค้นหาไฟล์บันทึกที่เปิดโดยไม่ทราบการกำหนดค่า

ตัวอย่าง:

ค้นหา PID ของ httpd (ใช้แนวคิดเดียวกันกับ nginx และโปรแกรมอื่น ๆ ):

$ ps aux | grep httpd
...
root     17970  0.0  0.3 495964 64388 ?        Ssl  Oct29   3:45 /usr/sbin/httpd
...

จากนั้นค้นหาไฟล์บันทึกที่เปิดอยู่lsofด้วย PID:

$ lsof -p 17970 | grep log
httpd   17970 root    2w   REG             253,15     2278      6723 /var/log/httpd/error_log
httpd   17970 root   12w   REG             253,15        0      1387 /var/log/httpd/access_log

ถ้าพิมพ์อะไรแม้ว่าคุณคาดว่าล็อกไฟล์ที่จะพบออกคำสั่งเดียวกันโดยใช้lsofsudo

คุณสามารถอ่านเล็ก ๆ น้อย ๆ อื่น ๆ อีกมากมายที่นี่


4
มันเป็นเคล็ดลับที่ดีที่จะจำ .. ไม่ต้องคาดเดาอีกต่อไปว่าไฟล์บันทึกจะอยู่ที่ใด
Yo Ludke

12
เรื่องนี้สอนให้ฉันรู้วิธีตกปลา; หวังว่าฉันจะสามารถ
โหวตได้

+1 สำหรับคำตอบเกี่ยวกับวิธีดู ฉันกำลังมองหาบันทึกจากการติดตั้ง nginx ที่แตกต่างกันและมันไม่ได้อยู่ในคำตอบยอด
Robert Dundon

คุณสามารถกระตุ้นข้อมูลที่คล้ายกันบน linux ใน/procระบบไฟล์ /proc/${pid}/fdมี symlink ไปยังไฟล์ที่เปิด,
ไพพ์


39

บันทึกของ ngninx ของฉันอยู่ที่นี่:

/usr/local/var/log/nginx/*

นอกจากนี้คุณยังสามารถตรวจสอบnginx.confเพื่อดูว่าคุณมีคำสั่งที่ทิ้งลงในบันทึกที่กำหนดเองหรือไม่

เรียกใช้ในการค้นหาของคุณnginx -tnginx.conf

# in ngingx.conf
error_log  /usr/local/var/log/nginx/error.log;
error_log  /usr/local/var/log/nginx/error.log  notice;
error_log  /usr/local/var/log/nginx/error.log  info;

Nginx มักจะตั้งขึ้นในหรือ/usr/local /etc/เซิร์ฟเวอร์สามารถกำหนดค่าให้ดัมพ์บันทึกได้/var/logเช่นกัน

หากคุณมีตำแหน่งอื่นสำหรับการติดตั้ง nginx ของคุณและอื่น ๆ ทั้งหมดล้มเหลวคุณสามารถใช้findคำสั่งเพื่อค้นหาไฟล์ที่คุณเลือก

find /usr/ -path "*/nginx/*" -type f -name '*.log'ซึ่ง/usr/เป็นโฟลเดอร์ที่คุณต้องการที่จะเริ่มต้นการค้นหาจาก


บันทึกจะอยู่ที่นี่หากคุณติดตั้ง Nginx ด้วย Homebrew
Sridhar Sarnobat

9

บันทึกตำแหน่งบนเซิร์ฟเวอร์ Linux

Apache  /var/log/httpd/

IIS  C:\inetpub\wwwroot\

Node.js  /var/log/nodejs/

nginx  /var/log/nginx/

Passenger  /var/app/support/logs/

Puma  /var/log/puma/

Python  /opt/python/log/

Tomcat  /var/log/tomcat8


2

พิมพ์คำสั่งนี้ในเทอร์มินัล

sudo cat /var/log/nginx/error.log

1
นั่นไม่ใช่คำตอบและควรเป็นความคิดเห็นแทน เมื่อคุณมีชื่อเสียงเพียงพอคุณจะสามารถแสดงความคิดเห็นได้
mrun

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