使用代理通行证的 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 重写规则的主要内容,如果未能解决你的问题,请参考以下文章

静态文件的 Apache 代理通行证

nginx:nginx反向代理在服务器上工作,但在本地主机上不工作

使用 NodeJS 代理通行证的 Apache SSL 配置无法启动

中国居民身份证通行证(含香港澳门台湾)资料整理,含编码规则

中国居民身份证通行证(含香港澳门台湾)资料整理,含编码规则

中国居民身份证通行证(含香港澳门台湾)资料整理,含编码规则