2 votes

Comment puis-je utiliser des expressions régulières dans un emplacement nginx avec proxy_pass ?

Je voudrais faire quelque chose comme :

location ~ ^/authorize/(\w+)$ {        
    proxy_pass http://my.vm/auth;
    proxy_pass_request_body on;
    proxy_set_header MY_CUSTOM_HEADER $1;
    proxy_pass_request_headers on;
}

Cependant, je reçois le message d'erreur suivant :

nginx: [emerg] "proxy_pass" cannot have URI part in
location given by regular expression, or inside named location,
or inside "if" statement, or inside "limit_except" block in
nginx.conf

Toute aide serait appréciée.

Merci d'avance

1voto

Tim Points 28848

Le message d'erreur est correct, ce n'est pas une configuration valide. Il existe une solution de contournement dont je me souviens vaguement avoir entendu parler et qui est décrite dans ces autres questions.

Nginx location regex ne fonctionne pas avec un proxy pass

Nginx. Utilisation de redirections avec des expressions régulières

Il existe également de nombreux articles que l'on peut trouver via Google. Si la solution de contournement ci-dessus ne fonctionne pas, vous devrez repenser votre approche.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X