Ho un proxy inverso su nginx che inoltra molti siti. Di recente ho abilitato HTTP Strict Transport Security per tutti i siti Web abilitati per SSL. Ora ho un sito che non vuole averlo abilitato.
Ho pensato di fare un semplice controllo se il mio upstream mi Strict-Transport-Security
avesse già inviato un'intestazione e, in caso contrario, aggiungerne uno. In questo modo, il mio upstream potrebbe inviare un'intestazione STS contenente max-age=0
per evitare che HSTS sia abilitato dal proxy.
Ho pensato di cambiare la mia configurazione come segue:
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";
}
}
Ma, probabilmente perché se è malvagio , questo non funziona. Ho provato un sacco di cose diverse per assicurarmi che la variabile esista effettivamente (che è il caso), ma nulla sembra aiutare.
Come potrei farlo funzionare?