当前位置:首页 > 技术文章 > 正文内容

网站报错504怎么办?(网站显示504)

arlanguage3个月前 (02-01)技术文章31


做网站的同学经常会发现一些nginx服务器访问时候提示504 Gateway Time-out错误,而出现这种错误有两种情况,第一种可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out。而第二种就有可能是PHP环境的配置问题,有些网站一直是使用nginx做代理后端的apache运行php来提供服务。apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现”504 Gateway Time-out”。



  • 那么遇到这些情况应该怎样处理呢?下面是关于nginx服务器出现504 Gateway Time-out的解决方法。
  • 原因一:由于nginx默认的fastcgi进程响应的缓冲区太小造成的错误
  • 解决方式:一般默认的fastcgi进程响应的缓冲区是8K,这时可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k这表示设置fastcgi缓冲区为8块128k大小的空间。当然如果在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:send_timeout 60;经过这两个参数的调整,一般不会再提示“504 Gateway Time-out”错误,问题基本解决。
  • 情况二:PHP环境的配置问题有时候网站需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。而这时候Nginx 504 Gateway Time-out的含义就是所请求的网关没有请求到,简单来说就是没有请求到可以执行的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模式。SSL证书是HTTP明文协议升级HTTPS加密协议的重要渠道,是网络安全传输的加密到通道。关于更多SSL证书的资讯,请关注GDCA(数安时代)。GDCA致力于网络信息安全,已通过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS解决方案。
  • 扫描二维码推送至手机访问。

    版权声明:本文由AR编程网发布,如需转载请注明出处。

    本文链接:http://www.arlanguage.com/post/2141.html

    分享给朋友:

    “网站报错504怎么办?(网站显示504)” 的相关文章

    记Nginx开启网站Https

    一、前言loang loang ago,在前后端分离之后,这个项目一直都是采用的http,并且有打算说是配置Https。拖了那么久终于在前阵子完成了,在这里做一个简要的记录。二、SSL证书2.1、什么是SSL证书开启Https是数字证书的一种,由受信任的数字证书机构颁发。在服务器配置了SSL之后其访...

    从入门到精通nginx——Nginx命令

    Nginx命令查看命令选项:nginx -h启动命令:nginx -c file停止命令:nginx -s stop/quit平滑重启命令:nginx -s reload测试配置文件命令:nginx -tq??nginx -t:测试配置文件是否正确,默认只测试默认的配置文件conf/nginx.co...

    nginx代理域名404问题解决

    使用nginx代理接口调用时,proxy_pass后面可以配置ip,也可以配置域名,使用ip时一般没有问题,但是使用域名时经常会出现出现404的问题如使用代理某一个服务器的接口location /myapi /{ proxy_pass http://192.168.11....

    Nginx总结(六)nginx如何实现负载均衡

    前面讲了如何配置Nginx虚拟主机,大家可以去这里看看nginx系列文章今天要说的是如何配置nginx和tomcat实现反向代理。需要说明的是:由于本文章是nginx系列文章中的一篇,文章里面很多其他的配置,可能前面的文章已经说讲过,然后后续就没有在介绍,如果出现有些配置没有讲,大家可能需要去看看前...

    Nginx笔记

    内容介绍 1、nginx基本概念。(1) nginx是什么,能做什么事情(2) 反向代理。(3) 负载均衡。(4) 动静分离2、nginx 安装、常用命令和配置文件(1)在liunx系统中安装nginx.(2) nginx常用命令。(3) nginx 配置文件。3、nginx 配置实例 1-反向代理...

    PHP日志记录

    背景在生产环境中日志的重要性显而易见,能快速定位问题和程序的调优。在LNMP架构中怎么记录好程序中的错误日志。设置error_log记录PHP日志信息#将会向PHP报告发生的每个错误 error_reporting = E_ALL #关闭页面显示才能将错误回写到日志文件 display_err...