帆软报表,nginx设置连接超时解决504 gateway timeout!
帆软报表,nginx设置连接超时解决504 gateway timeout!
nginx做反向代理,默认请求是有一个60秒的超时,如果http请求超过了60秒,再返回,连接就会被nginx中断,前端就会得到504的错误:gateway time-out。
如下,我们可以通过实验验证,默认的超时时间是60秒:
1、我们在页面上,做一个耗时的请求,后台线程sleep(70*1000),模拟这个耗时操作,让这个耗时操作撑过60秒。默认情况下,不使用nginx做反向代理,请求会在70秒后,正常返回。
2、我们使用nginx反向代理,将http://127.0.0.1/struts2hack的请求,代理到http://127.0.0.1:8080上,就是默认正常的请求服务上。
接着,我们点击页面的测试按钮,我们等待1分钟,会出现如下图所示的结果:
请求在一分钟后,即60秒时连接被断开,返回504。这个结果符合预期,说明了nginx默认超时时间是60s,超过60s,连接会被断开,为此,我们需要解决这个问题,就需要设置nginx超时时间了,这里我们将超时时间设置为3600,就是一个小时,这个值可以灵活设置,就是不让他在默认60秒断开链接。
location ~ /struts2hack {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 3600;
}
设置之后,我们再次点击页面的测试按钮,我们得到的结果就和最初一样了,经过70秒,服务端返回了数据,请求完成。
我是改了 read_timeout 解决了。
1、情况:由于nginx默认fastcgi进程响应缓冲区太小导致fastcgi进程挂起fastcgi服务队挂起处理能提示504 Gateway Time-out错误
2 解决办法:
默认fastcgi进程响应缓冲区8K我设置点nginx.conf加入:fastcgi_buffers 8 128k
表示设置fastcgi缓冲区8块128k空间
3解决办法(改进):
述修改现问题我继续修改nginx超参数参数调点设置60秒:
send_timeout 60;
经两参数调整结没再提示504 Gateway Time-out错误说明效挺错问题基本解决
4 情况二:PHP环境配置问题
我需要php-fpmnginx进行配置修改种情况现504 Gateway Time-out错误提示
5 情况二解决办法( php-fpm配置修改):
max_children由前10改30操作保证充足php-cgi进程使用
request_terminate_timeout由前0秒改60秒使php-cgi进程处理脚本超间提高60秒防止进程挂起提高利用效率
6情况二解决办法(nginx配置修改):
减少fastcgi请求数尽量维持buffers变我要更改nginx几配置项:
fastcgi_buffers由4 64k改2 256k;
fastcgi_buffer_size 由64k改128k;
fastcgi_busy_buffers_size由128k改256k;
fastcgi_temp_file_write_size由128k改256k
修改完我需要重新加载nginx配置再进行测试没发现504 Gateway Time-out错误。
我是改了 上面的 buffers 和read_timeout 解决了。
如果大家有其他的方法,或者想要知道哪方面的办公技巧,下方评论哦~
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论