Tôi có thể tìm thấy nhật ký lỗi của nginx ở đâu, sử dụng fastcgi và django


359

Tôi đang sử dụng django với fastcgi + nginx. Tôi muốn biết nơi các bản ghi (lỗi) được lưu trữ trong trường hợp này

Câu trả lời:


481

lỗi được lưu trữ trong tập tin nhật ký nginx. bạn có thể chỉ định nó trong thư mục gốc của tập tin nginx.

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

Trên Mac Os X với Homebrew , tệp nhật ký được tìm thấy theo mặc định tại vị trí sau:

/usr/local/var/log/nginx

11
Đó có thể là phiên bản phụ thuộc nhưng nhật ký của tôi ở bên trong:/opt/nginx/logs/error.log
jmarceli

49
trên Mac OS X với homebrew: / usr / local / var / log / nginx. xem câu trả lời
Félix Gagnon-Grenier

11
Trên Ubuntu tôi có nó trong /var/log/nginx/error.log. Tốt nhất là kiểm tra nginx.conftệp và tìm error_logcài đặt.
MarthyM

Bạn đã tìm thấy thông tin đó ở đâu?
etiennejcharles

300

Tôi đang tìm kiếm một giải pháp khác nhau.

Theo mặc định, nhật ký lỗi, trước khi bất kỳ cấu hình nào được đặt, trên hệ thống của tôi (x86 Arch), đã được tìm thấy trong:

/var/log/nginx/error.log

1
Rõ ràng điều này chỉ có thể định cấu hình tại thời điểm biên dịch với --error-log-pathtùy chọn biên dịch trac.nginx.org/nginx/ticket/147
Michael Berkowski

trên mâm xôi pi3 vị trí của nó
Bludau Media

161

Bạn có thể sử dụng lsof(danh sách các tệp đang mở) trong hầu hết các trường hợp để tìm tệp nhật ký mở mà không cần biết cấu hình.

Thí dụ:

Tìm PID của httpd (cùng một khái niệm áp dụng cho nginx và các chương trình khác):

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

Sau đó tìm kiếm các tệp nhật ký mở bằng cách sử dụng lsofvới 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

Nếu lsofin không có gì, mặc dù bạn mong đợi các tệp nhật ký được tìm thấy, hãy sử dụng lệnh tương tự sudo.

Bạn có thể đọc thêm một chút ở đây .


4
đó là một mẹo hay để nhớ .. không cần đoán thêm nơi các tệp nhật ký có thể
Yo Ludke

12
Điều này dạy tôi cách câu cá; ước gì tôi có thể nâng cao hơn nữa
kurttheviking

+1 Để có câu trả lời về cách nhìn. Tôi đang tìm kiếm nhật ký từ một bản cài đặt khác của nginx và nó không nằm trong câu trả lời hàng đầu.
Robert Dundon

bạn có thể chọc vào dữ liệu tương tự trên linux trong /prochệ thống tập tin. /proc/${pid}/fdcó các liên kết đến các tệp đang mở, đường ống, thiết bị, v.v.
Avindra Goolcharan


39

Nhật ký ngninx của tôi được đặt ở đây:

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

Bạn cũng có thể kiểm tra nginx.confxem bạn có bất kỳ chỉ thị nào bán phá giá đối với nhật ký tùy chỉnh không.

chạy nginx -tđể xác định vị trí của bạn nginx.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 thường được thiết lập trong /usr/localhoặc /etc/. Máy chủ có thể được cấu hình để kết xuất các bản ghi /var/log.

Nếu bạn có một vị trí thay thế cho cài đặt nginx của bạn và tất cả các lỗi khác, bạn có thể sử dụng findlệnh để xác định vị trí tệp bạn chọn.

find /usr/ -path "*/nginx/*" -type f -name '*.log', /usr/thư mục bạn muốn bắt đầu tìm kiếm từ đâu.


Nhật ký sẽ ở đây nếu bạn cài đặt Nginx với Homebrew.
Sridhar Sarnobat

9

Ghi nhật ký vị trí trên máy chủ 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

gõ lệnh này trong terminal

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

1
Đó không phải là một câu trả lời và nên là một bình luận thay thế. Một khi bạn có đủ danh tiếng, bạn sẽ có thể bình luận.
di chuyển

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.