J’essaie de faire des redirections en utilisant nginx. L’idée est de redirect uri / id_1234 / vers localhost: 1234 pour certains ports. La redirection pour le port fixe:
location /id_1234/ { rewrite ^/id_1234/(.*) /$1 break; proxy_pass http://localhost:1234; proxy_redirect http://localhost:1234/ $scheme://$host/id_1234/; }
Ça marche très bien. Maintenant, j’essaie de changer 1234 en n’importe quel port:
location ~* ^/id_([0-9]*)/ { rewrite ^/id_([0-9]*)/(.*)$ /$2 break; proxy_pass http://localhost:$1; proxy_redirect http://localhost:$1/ $scheme://$host/id_$1/; }
Avec cette configuration, j’obtiens une erreur 502, avec l’erreur suivante dans le journal:
no resolver defined to resolve localhost
Si je change $ 1 en port actuel après localhost: cela fonctionne bien pour le port spécifié. Comment le port de redirection peut-il être spécifié en utilisant regex?
Merci d’avance!
Ajouter
resolver 127.0.0.1;
aide, mais c’est très étrange …
Suite à la réponse de @ alleb57 – il semble qu’il n’y ait pas de définition de localhost
à ce stade de la configuration. Je me suis converti à utiliser http://127.0.0.1
tout au long de la configuration (via localhost
) et vous n’avez pas à définir le résolveur.