在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的情况,算是达到效果了。

另外,php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。
  <value name=”style”>apache-like</value>

从更改完毕到现在的测试表明上述方式的效果还是很明显的,并没有发现一次Nginx502 bad gateway或504 Gateway Time-out错误。当然,如果你的VPS或者服务器的性能足够好可以根据具体情况不必做无谓的改动。

来源:http://blog.csdn.net/tengzhaorong/article/details/5814905

解决nginx 504 Gateway Time-out的一些方法相关推荐

  1. flask uwsgi nginx *504* Gateway Time ou解决办法

    flask uwsgi nginx 504 Gateway Time ou解决办法 此方法有可能无效 修改 vi /etc/nginx/conf.d/配置文件名.conf 添加如下信息: uwsgi_ ...

  2. 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway(亲测)

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  3. 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway Time-out

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  4. 记一次 nginx 504 Gateway Time-out

    今天程序在执行一项excel导出任务的时候 出现了nginx超时的提示 nginx 504 Gateway Time-out 排查过程: 查看该任务 发现内容是一个数据量20000条信息 每条信息有5 ...

  5. 解决 502、504 Gateway Time-out(nginx)

    504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx默认 ...

  6. 【Nginx】解决 504 Gateway Time-out

    文章目录 Nginx + FastCGI (php-fpm) Nginx Proxy Timeout 常见的对应报错信息 "504 Gateway Timeout" "5 ...

  7. Faithfully yours, nginx. 浏览器中显示包504,504 Gateway Time-out解决办法

    1.修改/etc/nginx/nginx.conf,添加如下信息: http {include /etc/nginx/mime.types;default_type application/octet ...

  8. Nginx PHP 报504 Gateway time-out错误的解决方法

    Nginx PHP 报504 Gateway time-out错误的解决方法 参考文章: (1)Nginx PHP 报504 Gateway time-out错误的解决方法 (2)https://ww ...

  9. Nginx 出现504 Gateway Time-out的解决方法

    Nginx 出现504 Gateway Time-out的解决方法 参考文章: (1)Nginx 出现504 Gateway Time-out的解决方法 (2)https://www.cnblogs. ...

最新文章

  1. 总结自己的Git常用命令
  2. 中国地质大学c语言程序设计答案,2016年中国地质大学(北京)信息工程学院C语言程序设计(同等学力加试)考研复试题库...
  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1078:求分数序列和
  4. 搜索旋转排序数组—leetcode31
  5. 正则去除html行内样式,Android-富文本处理-html字符串去掉内部样式,统一添加body、style,统一支持换行等...
  6. 【操作系统】进程调度(2a):SJF(短任务优先) 算法 原理与实践
  7. java中img属性_如果html img的src属性无效,请输入默认图像?
  8. django 1.8 官方文档翻译: 3-5-2 使用Django输出PDF
  9. win服务器自动发邮件,asp.net基于windows服务实现定时发送邮件的方法
  10. Google 高薪争夺 Rust 人才,将用 Rust 重构关键组件!
  11. CSDN Chrome插件更新:用CSDN的方式让开发再快一点
  12. SSA静态单赋值概念理解
  13. html5页面中添加腾讯地图api
  14. 【安全牛学习笔记】cookie安全问题
  15. 大神李沐被曝离职亚马逊,投身大模型创业!网友:“AI 已成创业致富新思路?”...
  16. 【ANSYS】Notepad++:一款好用的APDL语法编辑器
  17. 如何彻底关闭win11自动更新
  18. 深度学习中,范数有什么意义
  19. VC++6.0报错: include stdafx.h before including this file for PCH
  20. 多边形碰撞检测(判断点在多边形内)

热门文章

  1. 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令
  2. 指针数组,数组指针,函数指针,main函数实质,二重指针,函数指针作为参数,泛型函数
  3. Python多继承基础
  4. MFC中简单绘图几种方式
  5. [深度学习基础] 2. 线性分类器
  6. ffmpeg推流时与服务器断开后的自动重连功能的实现
  7. 概率图模型中的变量消除顺序
  8. 5.6 前端开发日报
  9. [转]Shared——回调函数是什么
  10. 关于VECTOR和DEQUE