nginx 通过proxy_next_upstream实现容灾和重复处理问题

作者:舞羊
链接:https://www.cnblogs.com/wynjauu/articles/8529855.html 


ngx_http_proxy_module 模块中包括
proxy_next_upstream指令
语法: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 |http_404 | off ...; 默认值: proxy_next_upstream error timeout; 上下文: http, server, location
error # 和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现错误 timeout # 和后端服务器建立连接时,或者向后端服务器发送请求时,或者从后端服务器接收响应头时,出现超时 invalid_header # 后端服务器返回空响应或者非法响应头 http_500 # 后端服务器返回的响应状态码为500 http_502 # 后端服务器返回的响应状态码为502http_503 # 后端服务器返回的响应状态码为503 http_504 # 后端服务器返回的响应状态码为504 http_404 # 后端服务器返回的响应状态码为404 off # 停止将请求发送给下一台后端服务器
运用场景
1、proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;
当其中一台返回错误码404,500...等错误时,可以分配到下一台服务器程序继续处理,提高平台访问成功率,多可运用于前台程序负载,设置proxy_next_upstream
proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;

2、proxy_next_upstream off
因为proxy_next_upstream 默认值: proxy_next_upstream error timeout;
场景:当访问A时,A返回error timeout时,访问会继续分配到下一台服务器处理,就等于一个请求分发到多台服务器,就可能出现多次处理的情况,
如果涉及到充值,就有可能充值多次的情况,这种情况下就要把proxy_next_upstream关掉
proxy_next_upstream off
以上介绍转自:http://blog.sina.com.cn/s/blog_8f2ef1220102vpsg.html

我所遇见的问题:
一次搭建环境的时候,前台应用是部署在两台jboss服务器上面,url通过单点登录访问Nginx服务器,将请求分发到应用部署的jboss服务器集群上面,然后发生的情况是,前台正常访问,但是前台的初始化接口以及数据都展示不出来,F12看到报错:
总的构建:


解决方式:

Nginx处理方法:

cd /opt/suengine/conf

备份:cp nginx.conf nginx.conf.bak

vi nginx.conf

重新加载配置文件    ../sbin/nginx -s reload

 

posted @ 2018-03-08 17:44  舞羊  阅读(397)  评论(0编辑  收藏  举报