Tôi có một proxy ngược trên nginx, nơi ủy nhiệm khá nhiều trang web. Gần đây tôi đã kích hoạt HTTP Strict Transport Security cho tất cả các trang web hỗ trợ SSL. Bây giờ tôi có một trang web không muốn kích hoạt tính năng này.
Tôi nghĩ rằng tôi sẽ chỉ thực hiện một kiểm tra đơn giản nếu thượng nguồn của tôi đã gửi cho tôi một Strict-Transport-Security
tiêu đề, và nếu không, chỉ cần thêm một. Bằng cách đó, ngược dòng của tôi có thể gửi tiêu đề STS có chứa max-age=0
để tránh HSTS được bật bởi proxy.
Tôi nghĩ tôi chỉ cần thay đổi cấu hình của mình như sau:
location / {
proxy_pass http://webservers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto "https";
if ($upstream_http_strict_transport_security = "") {
add_header Strict-Transport-Security "max-age=15552000";
}
}
Nhưng, có lẽ bởi vì nếu là xấu xa , điều này không hoạt động. Tôi đã thử một loạt các thứ khác nhau để đảm bảo biến thực sự tồn tại (đó là trường hợp), nhưng dường như không có gì giúp được.
Làm thế nào tôi có thể làm cho công việc này?