阿里云ECS nginx 60秒超时 504
记一次 nginx 504 响应码的处理过程.
线上项目的下载功能只要耗时超过60s便会跳转到504页面,
于是搜索解决办法,相信大家都知道普遍的解决办法,那就是在nginx.conf里一痛加配置
如下
proxy_connect_timeout 3000;
proxy_read_timeout 3000;
proxy_send_timeout 3000;
send_timeout 3000;
fastcgi_read_timeout 3000;
fastcgi_send_timeout 3000;
fastcgi_buffers 8 128k;
fastcgi_buffer_size 128k;
client_header_timeout 3000;
client_body_timeout 3000;
但是加入之后,问题依旧
围绕nginx配置问题各种痛苦的爬楼无果之后. 我决定换个思路,以阿里云 504 为关键词爬楼, 果然有了眉目
在阿里云负载均衡的控制台找到了相关的设置项, 可是奇怪的是,把这个设置项从60s改成180s并重启负载均衡之后,问题任然存在,彻底崩溃,于是在确定了测试环境无此问题之后,遂向阿里云提了工单.各种沟通之后,对方要求提供问题链接让对方测试.然后我写好了测试链接却发现问题没有了,莫名其妙的没有了! 因为不知道是nginx.conf生效了还是阿里云的控制台设置生效了,于是我删除了nginx.conf里添加的配置,然后进行测试发现虽然同样跳转到了504页面,但是界面却有所不同!如下
这个才是nginx的504页面!
小结:目前我得出的结论是阿里云的负载均衡和自己搭的nginx都要进行超时设置,这是必然的.
关于阿里云的设置项为什么没有立即生效,我猜哈,无非有两种可能,
一种是确实生效时间慢,可能需要几十分钟,因为我们在重启阿里的负载均衡后,进行了多次测试,一直到我发工单写测试链接之前,问题都还在.
第二种是发工单之后,阿里的工程师偷偷摸摸解决了设置未生效的问题,因为刚好发了工单不久问题就没了,呵呵,真的也太巧合了,这种的就有点恶心了