使用代理通行证的 Nginx 重写规则
Posted
技术标签:
【中文标题】使用代理通行证的 Nginx 重写规则【英文标题】:Nginx rewrite rule with proxy pass 【发布时间】:2012-11-12 10:02:42 【问题描述】:我正在尝试针对以下情况实现nginx重写规则
请求:
http://192.168.64.76/Shep.ElicenseWeb/Public/OutputDocuments.ashx?uinz=12009718&iinbin=860610350635
应该重定向到:
http://localhost:82/Public/OutputDocuments.ashx?uinz=12009718&iinbin=860610350635
我试过这个没有运气:
location /Shep.ElicenseWeb/
rewrite ^/Shep.ElicenseWeb/ /$1 last;
proxy_pass http://localhost:82;
为 nginx 执行这种重写的正确方法是什么?
【问题讨论】:
【参考方案1】:你的重写语句是错误的。
右侧的 $1 表示匹配部分中的一个组(用括号表示)。
试试:
rewrite ^/Shep.ElicenseWeb/(.*) /$1 break;
【讨论】:
你可以试试:> location / rewrite ^/(.*) /Shep.ElicenseWeb/$1 break; proxy_pass 127.0.0.1:82; 【参考方案2】:您缺少尾部斜杠:
location /Shep.ElicenseWeb/
proxy_pass http://localhost:82/;
这无需重写即可工作。
【讨论】:
以上是关于使用代理通行证的 Nginx 重写规则的主要内容,如果未能解决你的问题,请参考以下文章
nginx:nginx反向代理在服务器上工作,但在本地主机上不工作