我在Nginx上有一个反向代理,可以代理很多站点。我最近为所有启用SSL的网站启用了HTTP Strict Transport Security。我现在有一个不想启用此功能的站点。
我以为如果上游已经给我发送了Strict-Transport-Security
-header,我将做一个简单的检查,否则,只需添加一个。这样,我的上游可以发送一个STS标头,其中包含该标头,max-age=0
以避免通过代理启用HSTS。
我以为我会按照以下方式更改配置:
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";
}
}
但是,可能是因为如果是邪恶的话,这是行不通的。我尝试了很多其他方法来确保变量确实存在(这种情况),但是似乎没有任何帮助。
我该如何进行这项工作?