324 votes

Nginx reverse proxy + réécriture d'URL

Nginx fonctionne sur le port 80, et je l'utilise pour faire du reverse proxy sur les URLs avec le chemin /foo au port 3200 de cette façon :

location /foo {
                proxy_pass http://localhost:3200;
                proxy_redirect     off;
                proxy_set_header   Host $host;
}

Cela fonctionne bien, mais j'ai une application sur le port 3200 pour laquelle je ne veux pas de l'initiale. /foo à envoyer à. C'est-à-dire que lorsque j'accède à http://localhost/foo/bar Je veux seulement /bar pour être le chemin tel que reçu par l'application. J'ai donc essayé d'ajouter cette ligne au bloc de localisation ci-dessus :

rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent;

Cela entraîne une redirection 302 (changement d'URL), mais je veux une redirection 301. Que dois-je faire ?

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