nginx的proxy_redirect如何使用解决重定向失败
1、使用xshell工具连接上linux服务器,使用vi命令打开nginx的conf下面的nginx.conf文件,如图所示添加proxy_redirect off;则表示关闭

2、为了演示效果,构造重定向页面条件,a.jsp和b.jsp两个文件,a页面重定向到b页面,注意这里使用的jsp的方式重定向,服务器返回重定向会返回Location响应头,不要使用javascript进行重定向,婶裁js的方式是在浏览器进行重定向和nginx那边设置没有关系了,看不出效果

3、然后访问host/app/a.jsp,正常的话,会直接跳转到b.jsp页面

4、但访问之后可以看到,浏览器地址变成了nginx反向代理的内部地址和端口了,说明没有对重定向地址进行重写,说明proxy_redirect配置不合理导致的

5、错误示例已经看出来导致的问题了,下攀良此面来看下proxy_redirect就具体使用方法,和不同配置的区别,如图所示是官方文档的语法说明

6、参照如图所示的方式进行proxy_redirect的配置,输入nginx -s reload重启nginx服务

7、再次访问a.jsp页面,则这次可以这次重定向到b.jsp页面了,虽然是成功了,但可能你还不能完全理解。配置proxy_redirect与不配置,以及default等众多方式的区别不了解的话,可以看下面的总结对比说明

8、nginx的鉴匠proxy_redirect用法总结:
访问测试地址:hostA/app/a.jsp
测试代理地址:proxy_pass hostB:8080/test_app/;
用法对比:
proxy_redirect hostB:8080/ /app/
跳转到:hostA/app/test_app/b.jsp
proxy_redirect hostB:8080/ /
跳转到:hostA/test_app/b.jsp
proxy_redirect / /;
跳转到:hostB:8080/test_app/b.jsp
proxy_redirect default;
跳转到:hostA/app/b.jsp
proxy_redirect hostB:8080/test_app/ /app/;(与default等同)
跳转到:hostA/app/b.jsp
proxy_redirect hostB:8080/test_app/ hostA/app/;
跳转到:hostA/app/b.jsp
proxy_redirect(不加)
跳转到:hostA/app/b.jsp
proxy_redirect off;
跳转到:hostB:8080/test_app/b.jsp
proxy_redirect hostB:8080/test_app/ /;
跳转到:hostA/b.jsp