当前位置:首页 > 资讯 > 正文

Nginx 上游返回失败处理方法 proxy_next_upstream

Nginx 上游返回失败处理方法 proxy_next_upstream

proxy_next_upstream


当上游返回失败的时候,我们是有些处理方法的,这个处理方法就是通过proxy_next_upstream这么一个指令来控制的。当然了该指令能够生效的前提是我们没有向客户端发送一个字节,即没有向客户端发送任何的内容,只要向客户端发送了一个字节了,说明上游服务已经生效了,那么我们就不能再选择一个新的上游服务了。所以它是在接收到请求并且在转发一个字节之前,nginx判定为错误,那么这个功能才能够生效。

 

  错误的连接由proxy_next_upstream, fastcgi_next_upstream等指令决定,且默认情况下后端某台服务器出现故障了,nginx会自动将请求再次转发给其他正常的服务器(因为默认proxy_next_upstream error timeout)。所以即使我们没有配这个参数,nginx也可以帮我们处理error和timeout的相应,但是没法处理404等报错,就是如果资源找不到还是会报错的。(如果后端服务器上有多台,只要有一台上没有用户要访问的资源就会报404错误)

 

proxy_next_upstream off|error|404


proxy_next_upstream off

 

 proxy_next_upstream error

 

 proxy_next_upstream 404

nginx没法处理404等报错,就是如果资源找不到还是会报错的。(如果后端服务器上有多台,只要有一台上没有用户要访问的资源就会报404错误,即后端服务器资源要保持一致)192.168.179.100上模拟客户端要访问的资源不存在,但是这个资源在192.168.179.101上存在。