负载均衡小记
nginx 中的proxy_next_upstream
如果遇到不确定资源时候,可以使用这个属性,搭配upstream
但是有个要素:如果是GET请求,是会重试的,即会负载到另外1个服务器
如果是POST请求,将不会触发重试,这里面涉及1个幂等的概念。一般情况下GET大多是查询,即天然就是幂等的;POST大多是INSERT操作,是不幂等的,如果重试的话,可能会导致脏数据或者业务混乱。
举例如下
upstream testretry{
server 127.0.0.1:8082 max_fails=1;
server 127.0.0.1:8081 max_fails=1;
}
server {
listen 80;
location / {
proxy_pass http://testretry;
proxy_next_upstream error timeout http_500 ;
}
}