У мене є зворотний проксі на nginx, який проксі досить багато сайтів. Нещодавно я включив жорстку безпеку транспорту HTTP для всіх веб-сайтів із підтримкою SSL. Зараз у мене є один сайт, який не хоче, щоб це було ввімкнено.
Я думав, що буду просто перевірити, якщо мій верхній потік вже надіслав мені Strict-Transport-Security
-головок, а якщо ні, просто додам його. Таким чином, мій верхній потік може надіслати заголовок 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";
}
}
Але, мабуть, тому, що якщо це зло , це не працює. Я спробував купу різних речей, щоб переконатися, що змінна насправді існує (що так і є), але ніби нічого не допомагає.
Як я міг змусити цю роботу?