Mam odwrotne proxy na nginx, które pośredniczy w wielu witrynach. Niedawno włączyłem HTTP Strict Transport Security dla wszystkich stron internetowych obsługujących SSL. Mam teraz jedną witrynę, która nie chce, aby ta funkcja była włączona.
Pomyślałem, że po prostu sprawdzę, czy mój poprzedni Strict-Transport-Securitykanał wysłał mi nagłówek, a jeśli nie, po prostu dodaj go. W ten sposób mój max-age=0serwer nadrzędny może wysłać nagłówek STS zawierający, aby uniknąć włączenia HSTS przez serwer proxy.
Pomyślałem, że po prostu zmienię konfigurację w następujący sposób:
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";
}
}
Ale prawdopodobnie dlatego, że jeśli jest zły , to nie działa. Próbowałem wielu różnych rzeczy, aby upewnić się, że zmienna faktycznie istnieje (tak jest w rzeczywistości), ale wydaje się, że nic nie pomaga.
Jak mogę sprawić, żeby to działało?