Tôi có một cấu hình nginx khá phức tạp, trong đó nhiều dịch vụ khác nhau hiển thị các điểm cuối của chúng, với nhiều địa điểm{}
khối.
Tôi không có nhiều quyền kiểm soát đối với tất cả các cấu hình này (vì nhiều nhóm thêm conf của riêng họ), nhưng tôi muốn thêm tiêu đề HSTS vào tất cả các phản hồi từ nginx.
Ngây thơ tôi đã thêm một
add_header Strict-Transport-Security "max-age=7776000; includeSubDomains" luôn luôn;
trong conf mặc định của tôi cho tất cả các phiên bản máy chủ{}.
Nhưng tôi đau khổ vì vấn đề cuối cùng add_header
chặn chiến thắng trên conf mặc định của tôi. Bất kỳ vị trí nào có add_header
trong tâm sự của họ sẽ không phải gửi tiêu đề HSTS của tôi.
I E:
[...chụp...]
người phục vụ {
nghe 443 ssl;
tùy chọn server_name.{{ domain }};
add_header Strict-Transport-Security "max-age=7776000; includeSubDomains" luôn luôn; # tôi có thể dễ dàng thêm cái này
error_log /var/log/nginx/preference_error.log;
access_log /var/log/nginx/preference_access.log chính;
# / phục vụ phía trước -> proxy_pass tới vùng chứa phía trước
địa điểm / {
hết hạn;
add_header Kiểm soát bộ đệm không có bộ đệm; # hai lệnh add_header này "xóa" tiêu đề hsts của tôi
add_header X-Robots-Tag "noindex, nofollow";
# tiêu đề proxy
tùy chọn máy chủ proxy_set_header.{{ miền }};
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-SSL-CERT $ssl_client_cert;
proxy_set_header X-Robots-Tag "noindex, nofollow";
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
# chuyển đến phụ trợ
proxy_pass http://preference_upstreams/;
}
}
Có cách nào để buộc TẤT CẢ các máy chủ/vị trí trong nginx thêm tiêu đề này mà không cần thêm thủ công vào tất cả các vị trí có chỉ thị add_header không?