Pages enfant
  • nginx

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

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

...