2009-11-10 18 views

Trả lời

295

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

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

Đó 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

+15

trên Mac OS X với homebrew:/usr/local/var/log/nginx. xem lfender's [answer] (http://stackoverflow.com/a/27402568/576767) –

+5

Trên ubuntu tôi có nó trong '/ var/log/nginx/error.log'. Tốt nhất là kiểm tra tệp 'nginx.conf' và tìm cài đặt' error_log'. – MarthyM

238

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

bản ghi lỗi, theo mặc định, trước khi bất kỳ cấu hình được thiết lập, 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 đây là cấu hình chỉ tại thời gian biên dịch với tùy chọn biên dịch '--error-log-path' http://trac.nginx.org/nginx/ticket/147 –

18

bản ghi ngninx tôi đang nằm ở đây:

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

Bạn cũng có thể kiểm tra nginx.conf của bạn để xem liệu bạn có bất kỳ hướng dẫn bán phá giá nào cho nhật ký tùy chỉnh hay không.

chạy nginx -t để tìm số nginx.conf của bạn.

# 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/local hoặc /etc/. Máy chủ có thể được định cấu hình để kết xuất nhật ký thành /var/log.

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

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

98

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 biết cấu hình.

Ví dụ:

Tìm PID của httpd (giống 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 cho các tập tin log mở sử dụng lsof vớ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 lsof không in được gì, ngay cả khi bạn mong đợi tìm thấy tệp nhật ký, vấn đề cùng một lệnh sử dụng sudo.

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

+4

đó là một mẹo hay để ghi nhớ .. không đoán thêm nữa nơi các tệp nhật ký có thể là –

+0

tuyệt vời, thực sự. cảm ơn –

+7

điều này đã dạy tôi cách câu cá; ước gì tôi có thể upvote thêm – kurttheviking

46

Chạy lệnh này, để kiểm tra các bản ghi lỗi:

tail -f /var/log/nginx/error.log 
1

gõ vào terminal sudo mèo /var/log/nginx/error.log

+1

Đó không phải là câu trả lời và phải là nhận xét thay thế. Khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét. – mrun

0

Tôi với MarthyM. theo mặc định trong Ubuntu, cả hai số access.logerror.log đều ở trong số /var/log/nginx/. Nhưng bạn có thể thay đổi chúng trong /etc/nginx/nginx.conf hoặc /etc/nginx/sites-available/your-site-file.

Các vấn đề liên quan