Câu trả lời:
Bạn có thể gửi các giá trị biến nginx thông qua các tiêu đề. Tiện dụng cho sự phát triển.
add_header X-uri "$uri";
và bạn sẽ thấy trong tiêu đề phản hồi của trình duyệt:
X-uri:/index.php
Tôi đôi khi làm điều này trong quá trình phát triển địa phương.
Nó cũng hữu ích để cho bạn biết nếu một tiểu mục có được thực hiện hay không. Chỉ cần rắc nó vào trong mệnh đề của bạn để xem chúng có quen không.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
add_header X-debug-message "A static file was served" always;
...
}
location ~ \.php$ {
add_header X-debug-message "A php file was used" always;
...
}
Vì vậy, việc truy cập một url như http://www.example.com/index.php sẽ kích hoạt tiêu đề sau trong khi truy cập http://www.example.com/img/my-ducky.png sẽ kích hoạt tiêu đề cũ.
add_header
mà sẽ trở lại tiêu đề, không có vấn đề gì mã phản hồi. Vì vậy, ví dụ, add_header X-debug-message "A php file was used" always;
nên hoạt động ngay cả đối với 500 mã lỗi.
Bạn có thể trả về một chuỗi đơn giản dưới dạng phản hồi HTTP:
location /
{
return 200 $document_root;
}
Bạn có thể đặt định dạng nhật ký truy cập tùy chỉnh bằng cách sử dụng lệnh log_format
ghi nhật ký các biến bạn quan tâm.
error_log
để debug
bạn có thể thấy giá trị của các biến và khối đó được thực thi. Ví dụerror_log file.log debug
-
trong nhật ký, nhưng thực sự trống trong mã nginx, bạn không nên kiểm tra -
bất cứ lúc nào. Điều này đôi khi gây nhầm lẫn cho người dùng.
Một tùy chọn khác là bao gồm mô-đun echo khi bạn xây dựng nginx hoặc cài đặt OpenResty được nginx kèm theo một loạt các tiện ích mở rộng (như echo.)
Sau đó, bạn có thể chỉ cần rắc cấu hình của mình bằng các câu như:
echo "args: $args"
echo_log
chỉ thị trong phát triển.
add_header
sẽ chỉ làm việc trên các yêu cầu thành công . Tài liệu nói rằng nó chỉ có thể được áp dụng cho các phản hồi với mã 200, 204, 301, 302 hoặc 304. Do đó, nó không thể được sử dụng để gỡ lỗi lỗi HTTP.