今天公司的网站访问的时候全部变成404页面,查看网站的文件没有问题,来检查nginx的配置的时候,
发现后端的一台服务器不可用,直接访问那台后台的服务器的时候,返回的是404页面,
因为upstream 里面设置了ip_hash。所以导致我怎么刷新都是404页面。
由此想到了nginx的一个功能,就是当后端的服务器返回给nginx502、504、404、执行超时等错误状态的时候,
nginx会自动再把这个请求转发到upstream里面别的服务器上面,从而给网站用户提供更稳定的服务。
配置如下:
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 http_404 error timeout invalid_header;
proxy_pass http://php_server_pool;
proxy_set_header Host www.yourdomain.com;
proxy_set_header X-Forwarded-For $remote_addr;
}
这样的话,也算是保障了后端服务器的一个高可用性,不得不说,nginx还是很强大的。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/2442.html