遇到504错误,加了好多打印信息,发现打印出来都没毛病。
接着猜想是正式环境的数据和本地测试环境的数据不一样,又把正式环境的数据导回到本地测试,结果发现两者打印信息一模一样,但本地就可以正常打开网页,而正式环境就报504错误。
在对比了日志之后,发现正式环境的日志打到了某一处就没了,猜想这个时候应该是某个超时机制生效导致程序不再往下走了。
一开始找了好多答案,有说nginx.conf里设置fastcgi超时时间的
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
但设置了之后发现没用,最后在https://blog.csdn.net/tmpbook/article/details/43734699这篇文章中找到答案——
原来我的nginx配置文件里设置了uwsgi_read_timeout为2秒
把它改大一点就OK了。
启发:
这次找Bug浪费了大半天时间,如果一早先排查正式配置文件,就可以避免做无用功。看到返回码504,应该先排查一遍环境的超时配置。