Nginx 反向代理配置规则探究

这里用 proxy.xxxxxx.com 作为反向代理的站点,用 host.xxxxxx.com 作为反向代理的源站

首先给源站启用伪静态规则 ,将所有的流量全部伪静态到index.php 上(直接用thinkphp 的规则)

然后在 host.xxxxxx.com 下新建index.php 文件 ,代码如下

访问网址 host.xxxxxx.com/proxy/dir1/dir2/dir3 得到

我们设置 proxy.xxxxxx.com 反代到 host.xxxxxx.com

1.如果目标url 后面加上了 / ,那么访问 proxy.xxxxxx.com/proxy/dir1/dir2/dir3 时,得到响应

修改反代配置文件,删除目标url 后面的 / ,

得到结果

 

因此得到结论,

如果 nginx 反代时,proxy_pass 的值最后有/ , 那么会原请求[/proxy/dir1/dir2/dir3 ] 中的反代目录[/proxy] 去掉,将剩余的参数拼接到 proxy_pass 的网址后面,即$proxy_pass[/dir1/dir2/dir3]

如果proxy_pass 的最后没有 /

那么会原请求[/proxy/dir1/dir2/dir3 ] 直接拼接到 proxy_pass 的网址后面,即$proxy_pass[/proxy/dir1/dir2/dir3]

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注