问题复现
近期部门内部有一个应用由于数据量过于庞大,或者说sql优化性能问题,导致查询全量数据时老报错nginx404,后来查看浏览器timing信息,发现其竟然时常达到可怕的2分钟十秒,抛去解决sql优化问题,这里从Nginx端的配置来说如何解决这类问题!
存在的问题
服务器处理请求时间过长,导致超出Nginx配置的代理请求超时时间,其会报错404!
解决方式
修改Nginx配置的代理请求时间(或者优化sql!!!)
具体解决步骤
- 找到对应Nginx的配置文件
我是用docker部署的Nginx,读者找到自己对应的Nginx.conf文件
- 修改代理超时时间
下图三个参数为代理连接超时时间、代理读取超时时间、代理传送超时时间。读者可根据需要去修改参数参数详解:
proxy_connect_timeout 90;
后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_read_timeout 180;
连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
proxy_send_timeout 180;
后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
- 重启Nginx
我是使用docker部署的Nginx,直接使用命令docker + restart +nginx容器名
一定要重启Nginx!!!不然配置不会生效的!!