错误内容:upstream timed out (110: Connection timed out) while reading response header from upstream
错误原因:
从错误日志我们可以知道,该错误是由于nginx 代理去获取上游服务器的 返回值超时了。那么这个问题是什么导致的:
1 该请求获取的数据比较多,后端处理该请求花费的时间较长。
2 也可能是代理服务器与上游服务器的网络问题
我们通过定位出错的url,来排查问题,最终确定问题是由于 该请求需要后端处理的时间比较长。
那么解决办法可以是开发人员对该接口进行优化,也可以是我们通过nginx将超时时间设置长些。
解决方法:
nginx 超时时间设置
Syntax: proxy_read_timeout time;
Default: proxy_read_timeout 60s;
Context: http,server,location
proxy_read_timeout 参数, 该指令是指从上游服务器两次成功的读操作耗时的超时时间,也就意味着从上游服务器成功读操作后,过了60S,没有再从上游服务器成功读操作的话,就会关闭该连接。
默认值是 60s ,我们可以设置为240s,或者300s。来应对上游服务器处理请求慢的问题。
在nginx 的配置文件 在 http,server,location 三个位置任意一个位置
加上
proxy_read_timeout 240s;