问题描述
我想要的效果:
http://hostname/proxy/3000http://127.0.0.1:3000http://hostname/proxy/3000/anythinghttp://127.0.0.1:3000/anything
有一个要求:端口是变化的
我尝试了
location ~ /proxy/(d+) {proxy_pass http://127.0.0.1:$1;rewrite ^/(.*)$ / break; }
但是rewrite不管怎么写都有问题
在nginx的配置里该怎么写,在线等~
问题解答
回答1:proxy_pass 的文档里有讲:location 使用了正则后,proxy_pass 指令后面的参数中的 URI 部分会被忽略。可以使用下面的配置间接达到你想要的功能:
server { listen 80; server_name localhost; location /proxy/ {rewrite ^/proxy/(d+)/(.*) /internal?port=$1&url=$2 last; } location /internal {internal;proxy_pass http://127.0.0.1:$arg_port/$arg_url; }}