Nginx add_header cho trang 50 *


19

Tôi hiện đang cố gắng để nginx thêm tiêu đề vào phản hồi khi nó đang gửi một loại lỗi 50 * nào đó. Tôi đã có một lệnh add_header trên khối http và được tôn trọng cho tất cả các yêu cầu ngoại trừ có vẻ như có lỗi. Tôi cũng đã thử những điều sau đây trong một trong những vhost của mình:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

Đi đến trang đó cho tôi một 502, nhưng không có tiêu đề. Đây có phải chỉ đơn giản là một cái gì đó nginx không làm, hoặc tôi đang làm sai?


Bạn có thể đăng kết quả đầu ra của $ curl -I <url> // mediocregopheristhecoolest
Chida

Câu trả lời:


21

Tài liệu nêu rõ add_header "Thêm trường được chỉ định vào tiêu đề phản hồi với điều kiện mã phản hồi bằng 200, 204, 206, 301, 302, 303, 304 hoặc 307. Một giá trị có thể chứa các biến." Vì vậy, nó không hoạt động với 502.

Tôi quên thêm rằng bạn có thể sử dụng mô đun tiêu đề của bên thứ ba nhiều hơn để thêm tiêu đề vào các mã khác. Bạn có thể sẽ phải biên dịch lại để thêm nó, mặc dù.


Xem bình luận của marat: phiên bản nginx mới hỗ trợ cài đặt tiêu đề bất kể mã phản hồi
Laurens Rietveld

44

Vì Nginx 1.7.5, bạn có thể sử dụng alwaysđể thêm tiêu đề bất kể mã phản hồi:

add_header X-Test "blahblahblah" always;

1
Thật khó chịu, phiên bản trong repos của Debian hiện đã lỗi thời (1.6.x), nhưng nginx vẫn duy trì kho lưu trữ của riêng họ với bản dựng ổn định mới nhất (1.8.x ngay bây giờ).
kungphu

Nếu bạn muốn nâng cấp một hệ thống debian đã làm việc, backports debian là an toàn hơn ... packages.debian.org/jessie-backports/httpd/nginx Các thượng nguồn gói sử dụng tổ chức gói khác nhau (có thể gây ra một số thời gian chết thay cho mịn nginx nâng cấp cơ chế ). Và kịch bản postrm của nó loại bỏ các bản ghi. Và một vài sự khác biệt nhỏ khác ...
Lajos Veres
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.