Nginx 使用代理传递重写规则

Nginx 使用代理传递重写规则

我正在尝试针对以下情况实施 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;

答案2

location /Shep.ElicenseWeb/ {
    proxy_pass http://localhost:82/;
}

rewrite你根本不需要。只需/在 末尾添加一个proxy_pass

请阅读文档:http://nginx.org/r/proxy_pass

相关内容