504 gateway time-out:Nginx 504 Gateway time-out错误完美解决方案分享
今天来聊聊一篇关于504 gateway time-out:Nginx 504 Gateway time-out错误完美解决方案分享的文章,现在就为大家来简单介绍下504 gateway time-out:Nginx 504 Gateway time-out错误完美解决方案分享,希望对各位小伙伴们有所帮助。
在安装完Nginx+PHP-fpm+Mysql后,跑PHP的应用会经常出现504 Gateway Time-out 或者502 Bad Gateway的情况。
Nginx 504 Gateway Time-out 的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的 PHP-CGI。这种情况可能是由于 nginx 默认的 fastcgi 进程响应的缓冲区太小造成的, 这将导致 fastcgi 进程被挂起, 如果你的 fastcgi 服务对这个挂起处理的不好, 那么最后就极有可能导致 504 Gateway Time-out。
Nginx 504 Gateway time-out错误.jpg
一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K
默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
这表示设置fastcgi缓冲区为8×128k
当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:
send_timeout 60;
我只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错
这个问题耽误了我差不多4个小时的时间,网上有很多前辈们的解决方法,在这里记录下解决这个问题的思路。首先这个问题主要是因为PHP的Script执行时间太长了,已经超过nginx能接受的底线。
在nginx的日志中会看到这样的log
2012/08/11 13:39:45 [error] 30788#0: *1 upstream timed out (110: Connection timed out)
while reading response header from upstream, client: 127.0.0.1, server: www.cr173.com
request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.cr173.com
在php-fpm的日志中会发现这样的log
2012/08/11 13:39:45 [error] 30788#0: *1 upstream timed out (110: Connection timed out)
while reading response header from upstream, client: 127.0.0.1, server: www.cr173.com
request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.cr173.com"
一般来说,出现这样的情况是因为Nginx会从php-fpm的9000端口读取fastcgi的执行结果,等来N久都不见回复,所以就报504了。解决办法很简单,修改php的最长执行时间
; Maximum execution time of each script, in seconds; http://php.net/max-execution-time;
Note: This directive is hardcoded to 0 for the CLI SAPI;
fix by Matt 2012.8.11
;max_execution_time = 3000
在这里我注释掉php.ini参数的时间限制。还有php-fpm里的
;request_terminate_timeout = 0
这个参数会在php.ini中max_execution_time因为某些原因不能正常工作才会生效。
之前设置的是300s,安装Magento的时候就一直就报504。后来索性修改到3000了。在Nginx的配置文件添加
#add by Matt 2012.8.11
fastcgi_read_timeout 3000;
fastcgi_connect_timeout 3000;
fastcgi_send_timeout 3000;
Magento你到底安装多少sql文件啊?
PS:有时候缓存过小也会引起504,具体情况还需要根据Nginx的日志内容来分析。修改fastcgi的缓存大小:
fastcgi_buffers 2 256k;
fastcgi_buffer_size 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
VPS出现Nginx 504 Gateway time-out错误
西西 只对 Nginx.conf 和 php-fpm.conf 两个配置文件做了一些修改,观察一段时间,看看效果。
1.将 Nginx.conf 配置文件中相应参数设置为如下:
命令:vi /usr/local/nginx/conf/nginx.conf (lnmp.org出品的lnmp一键安装包路径,其它请自行找目录)
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;#8 128
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
2.将 php-fpm.conf 配置文件中相应参数设置为如下值:
命令:vi /usr/local/php/etc/php-fpm.conf (lnmp.org出品的lnmp一键安装包路径,其它请自行找目录)
对 Linux 西西 也是菜鸟,只好照着别人的方法来设置了,等一段时间,没什么问题了,这个方法应该就是一个很有效的方法了。
相信通过504 gateway time-out:Nginx 504 Gateway time-out错误完美解决方案分享这篇文章能帮到你,在和好朋友分享的时候,也欢迎感兴趣小伙伴们一起来探讨。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
预约试驾比亚迪元PLUS前,需注意以下几点:首先确认车型配置与预算是否匹配,了解车辆性能及续航信息。其次,...浏览全文>>
-
小鹏G7试驾前,新手需掌握以下步骤:1 预约试驾:通过官网或APP预约,选择合适时间和地点。2 准备证件:...浏览全文>>
-
预约别克GL8试驾,4S店提供专业且贴心的服务流程。首先,可通过电话或线上平台提前预约,选择合适的时间与车型...浏览全文>>
-
试驾奇瑞新能源QQ多米,新手可参考以下流程:1 预约试驾:通过官网或4S店预约,选择合适时间。2 到店接...浏览全文>>
-
试驾宝马X1,感受紧凑型SUV中的驾驶乐趣。轻踩油门,2 0T发动机迅速响应,动力输出平顺有力,提速迅猛。方向...浏览全文>>
-
福特烈马预约试驾,线上+线下操作指南:线上预约:访问福特官网或官方App,选择“试驾预约”,填写个人信息、...浏览全文>>
-
奥德赛试驾预约,简单几步,开启完美试驾之旅。只需三步,即可轻松完成预约:第一步,访问官网或拨打热线;第...浏览全文>>
-
想要快速锁定雷克萨斯ES的试驾名额,可采取以下方法:首先,访问雷克萨斯官网或使用官方APP,填写基本信息并提...浏览全文>>
-
想体验理想L8的智能与豪华?现在即可在线下预约试驾!作为一款中大型SUV,理想L8融合了家庭出行与科技感,搭载...浏览全文>>
-
试驾SRM鑫源摩托车时,需注意以下几点:首先,确认车辆状态,检查刹车、轮胎、灯光等是否正常。其次,选择安全...浏览全文>>
- 理想L8试驾线下预约
- 宝马X1预约试驾,4S店体验全攻略
- 华晨新日预约试驾,如何享受4S店的专业服务?
- 小鹏P7+试驾,开启完美驾驭之旅
- 元UP试驾预约,快速上手指南
- 金龙汽车预约试驾,新手试驾注意事项
- 蓝电试驾预约,如何快速预约并体验驾驶乐趣?
- 乐道L60试驾,如何在4S店快速预约?
- 小鹏MONA M03试驾,开启完美驾驭之旅
- 试驾别克昂科威,轻松几步,畅享豪华驾乘
- 云度新能源预约试驾有哪些途径
- 乐道L60试驾,如何在4S店快速预约?
- 哈弗大狗试驾,开启完美驾驭之旅
- 试驾深蓝汽车深蓝S05,线上+线下操作指南
- 日产奇骏试驾怎么预约
- 鸿蒙智行问界M9预约试驾,新手试驾注意事项
- 奇瑞艾瑞泽8预约试驾怎么预约
- 荣威预约试驾全攻略
- 坦克试驾,开启完美驾驭之旅
- 吉利银河预约试驾需要注意什么