我试图使用nginx进行重定向。想法是将uri / id_1234 /重定向到localhost:1234以用于某些端口。固定端口的重定向:
location /id_1234/ {
rewrite ^/id_1234/(.*) /$1 break;
proxy_pass http://localhost:1234;
proxy_redirect http://localhost:1234/ $scheme://$host/id_1234/;
}
它运作得很好。现在我尝试将1234更改为任何端口:
location ~* ^/id_([0-9]*)/ {
rewrite ^/id_([0-9]*)/(.*)$ /$2 break;
proxy_pass http://localhost:$1;
proxy_redirect http://localhost:$1/ $scheme://$host/id_$1/;
}
使用此配置,我收到502错误,日志中出现以下错误:
no resolver defined to resolve localhost
如果我在localhost:之后将$ 1更改为实际端口,则它适用于指定的端口。如何使用正则表达式指定重定向端口?
提前致谢!
答案 0 :(得分:4)
添加
resolver 127.0.0.1;
有帮助,但这很奇怪......
答案 1 :(得分:3)
跟随@ alleb57的回答 - 似乎在配置的这一点上没有localhost
的定义。我转换为在整个配置中使用http://127.0.0.1
(超过localhost
),您无需定义解析器。