...
Solution possible : "error_page 405 =200 $uri;
"
...
Techniques de proxification
Modifier un response header
- Pour forcer une valeur :
proxy_hide_header Content-Security-Policy;
add_header Content-Security-Policy "xxx";
- Pour ajouter une valeur
proxy_hide_header Content-Security-Policy;
add_header Content-Security-Policy "$upstream_http_content_security_policy; xxx";
- Pour modifier une valeur
# NB: doit être fait en scope global ("http")
map $upstream_http_content_security_policy $content_security_policy_allow_bandeau {
'~(.*); script-src (.*)' "$1; script-src ent.univ.fr $2";
'~(.*)' "$1; script-src ent.univ.fr";
}
proxy_hide_header Content-Security-Policy;
add_header Content-Security-Policy $content_security_policy_allow_bandeau;
Proxifier un backend avec SNI
Bloc de code |
---|
proxy_pass https://foo.bar;
proxy_ssl_verify on;
proxy_ssl_verify_depth 1;
# le SNI est utilisé par le backend
proxy_ssl_name xxx.univ.fr;
proxy_ssl_server_name on; |
Mais attention si on a besoin d'un deuxième SNI vers le même serveur backend, exemple :
Bloc de code |
---|
proxy_pass https://foo.bar;
proxy_ssl_name xxx2.univ.fr; |
=> cela ne fonctionnera pas à cause "proxy_ssl_session_reuse
".
Une solution est "proxy_ssl_session_reuse off
".
Une autre solution est d'utilisateur un upstream :
Bloc de code |
---|
# NB: pour proxy_pass https://xxx.univ.fr, il semble que nginx utilise "xxx.univ.fr" comme clé pour la fonctionnalité proxy_ssl_session_reuse
# En utilisant un upstream, on peut forcer une clé différente pour un même backend
upstream upstream_xxx2 {
server foo.bar:443;
}
server {
...
proxy_pass https://upstream_xxx2;
proxy_ssl_name xxx2.univ.fr;
} |
Sticky sessions avec nginx open source
...