我在CentOS下配置lnmp组合基本上用的都是同样的配置文件,一直都没出现过问题,可最近在一个vps上安装同样的环境之后,网站在线10多人就出现了打开速度非常缓慢的情况,有好几次都是直接达到了nginx中设置的脚本最大超时时间300秒,结果导致nginx往客户端浏览器发送了一个504 Gateway Time-out的错误代码,分析了之后改动了几处配置文件,终于避免了该情况的出现。
从错误代码基本可以确定跟nginx本身无关,主要是提交给php-fpm的请求未能正确反馈而导致,一般情况下,提交动态请求的时候,nginx会直接把请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器,但我这个vps目前跑的是个纯php应用内容,实际上用户所有的请求都是php请求,有的耗费时间比较久,php-cgi进程就一直都被用满,而php-fpm本身的配置文件只打开了10组php-cgi进程,这样的话在线用户稍微多的话就会导致请求无法被正常处理而出错。
大概分析出了原因,下面做就比较容易了,首先是更改php-fpm的几处配置:
把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;
把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。
接着再更改nginx的几个配置项,减少FastCGI的请求次数,尽量维持buffers不变:
fastcgi_buffers由 4 64k 改为 2 256k;
fastcgi_buffer_size由 64k 改为 128K;
fastcgi_busy_buffers_size 由 128K 改为 256K;
fastcgi_temp_file_write_size 由 128K 改为 256K。
好了,重新加载php-fpm和nginx的配置,再次测试,至今两周时间内没有再出现504 Gateway Time-out的情况,算是达到效果了。
分享到:
相关推荐
最近服务器宕机的现象比较频繁,临下班时分,G给挂掉了,502 Bad Gateway Nginx,不由得让我想起之前的504 Gateway Time-out,两者应该有点联系,一定得弄清楚。Nginx 504 Gateway Time-out的含义是所请求的网关没有...
1. **增加超时时间**:在 Nginx 的配置文件(nginx.conf)中,可以调整 fastcgi 的超时时间,例如 `fastcgi_connect_timeout`、`fastcgi_send_timeout` 和 `fastcgi_read_timeout`。这些参数分别代表建立连接、发送...
apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现”504 Gateway Time-out”查看错误日志也看不到任何东西,以为是apache的bug(其实不是,下面会说原因)。 也许年龄大了人就不爱折腾,愿意保持原状...
NGINX 504 Gateway Time-out 错误通常发生在客户端向服务器发起请求后,服务器端没有在预期的时间内返回响应。对于这种情况,我们可以通过调整 NGINX 的配置参数来解决,具体涉及以下几个方面: 1. FastCGI 缓冲区...
在这个配置文件中,可以设置连接时间(fastcgi_connect_timeout)、发送时间(fastcgi_send_timeout)、读写时间(fastcgi_read_timeout)等参数。这些参数决定了Nginx与Apache通信时,前端连接后端的等待时间,后端...
标题 "Nginx 阿里云服务器提示504" 涉及的问题是关于Web服务器Nginx在阿里云环境中遇到了“504 Gateway Time-out”错误。这个错误通常意味着Nginx作为前端代理服务器,未能在预设的时间内从后端应用服务器(如Apache...
总结来说,解决Nginx PHP-FPM环境下504 Gateway Timeout错误的方法主要涉及调整PHP-FPM的request_terminate_timeout参数,以及Nginx中upstream相关超时配置。这些调整能够确保长时间运行的PHP脚本不被不恰当的超时...
例如: 代码如下: http { …… fastcgi_connect_timeout 300;... 您可能感兴趣的文章:Nginx 502 bad gateway和Nginx 504 Gateway Time-out错误解决方法 错误解决办法Nginx 遇到502 Bad Gateway 自动重启的脚本代
2. **调整超时设置**:在Nginx配置中,可以通过`proxy_read_timeout`指令调整等待上游服务器响应的时间,例如: ```nginx proxy_read_timeout 30s; # 默认值是60s,根据实际情况调整 ``` 3. **优化后端服务**:...
最近项目中用到了nginx,后台用的是Java, 发现有一个请求后台处理操过了1分钟,结果请求Status Code为504 Gateway Time-out. 理解了下nginx 所有timeout相关的配置,如下: keepalive_timeout HTTP 有一个 KeepAlive...
### Nginx 502 Bad Gateway 问题的解决方法 #### 一、问题概述 在Web服务器运维中,遇到“502 Bad Gateway”错误是较为常见的问题之一。此错误意味着Nginx作为反向代理服务器,在尝试访问后端应用服务器(如...
如果超过这个时间,Nginx会返回504 Gateway Timeout错误。默认值是60秒,但你可以将其设置得更长,比如600秒,以适应需要长时间处理的请求。 3. **fastcgi_send_timeout**: 此参数控制Nginx向FastCGI进程发送请求的...
在Web服务器领域,Nginx以其高效的反向代理、负载均衡和静态文件处理能力而备受青睐。与此同时,PHP是动态网站开发中广泛使用的服务器端脚本语言,尤其适合处理PHP框架如ThinkPHP的应用。将Nginx与PHP结合,可以构建...