解决部分nginx添加反向代理代码无效问题

一些用户的网站使用nginx,在添加了反向代码之后,没有效,感觉和不添加的时候一样。

经过我工作室顶尖技术人员的排查,发现问题原因是rewrite的优先级高于反向代理

并且某些网站程序的伪静态规则,直接拦截了所有匹配导致。如 thinkphp,zblog,小旋风站群 等!

解决办法就是,给伪静态规则加上一个条件,把反向目录排除。

以下以thinkphp的伪静态规则做举例,thinkphp的默认伪静态规则如下:

if (!-e $request_filename) {
rewrite  ^(.*)$  /index.php?s=$1  last;
break;
}

注意把 ^(.*) 改成 ^/(?!您的目录)(.*) ,其中 您的目录改成自己的反代目录,如有多个用|分开: ^/(?!您的目录1|您的目录2)(.*)

修改后的代码就变成以下:

if (!-e $request_filename) {
rewrite  ^/(?!您的目录)(.*)$  /index.php?s=$1  last;
break;
}
本站所有内容仅限用于学习和研究目的,程序仅供本地断网测试,转载请说明出处!
站群SEO » 解决部分nginx添加反向代理代码无效问题

发表评论

欢迎 访客 发表评论

聚合全网站群程序及推送工具!

联系站长 联系客服