原因分析:504错误一般与nginx.conf配置有关,主要参数有:fastcgi_connect_timeout、fastcgi_send_timeout、fastcgi_read_timeout、fastcgi_buffer_size、fastcgi_buffers、fastcgi_busy_buffers_size、fastcgi_temp_file_write_size、fastcgi_intercept_errors。特别是前三个超时时间。如果fastcgi缓冲区太小会导致fastcgi进程被挂起从而演变为504错误。
个人测试了一下:
- 首先配置
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 1 ;
- test.php脚本代码:
sleep(10);
echo '123';
- 浏览器访问test.php:
![](https://img2018.cnblogs.com/blog/1353593/201905/1353593-20190515102132502-546307922.png)
![](https://img2018.cnblogs.com/blog/1353593/201905/1353593-20190515102145757-2078040239.png)
解决方案:
主要是从nginx.conf中有关fastcgi的配置入手