I'm trying to make redirections using nginx. The idea is to redirect uri /id_1234/ to localhost:1234 for some ports. The redirection for the fixed port:
location /id_1234/ {
rewrite ^/id_1234/(.*) /$1 break;
proxy_pass http://localhost:1234;
proxy_redirect http://localhost:1234/ $scheme://$host/id_1234/;
}
It works just fine. Now I try to change 1234 to any 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/;
}
With this config, I get a 502 error, with the following error in log:
no resolver defined to resolve localhost
If I change $1 to actual port after localhost:, it works fine for the specified port. How can be redirection port specified using regex?
Thanks in advance!
Following up from @alleb57's answer - it appears that there just isn't a definition for localhost
at this point of the configuration. I converted to using http://127.0.0.1
throughout the config (over localhost
) and you don't have to define the resolver.
Adding
resolver 127.0.0.1;
helps, but it's very strange...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With