精华内容
下载资源
问答
  • 504 Gateway Time-out 是怎么回事?

    万次阅读 2020-06-17 15:35:46
    504 Gateway Time-out就字面意思,我们可以理解为bai网页请求超时,也du就是浏览网站网页所发出zhi的请求没有反应或者未响应。 出现dao"504 Gateway Time-out"的原因: 1、在网站程序层面来说,就是请求未能够执行...

    504 Gateway Time-out就字面意思,我们可以理解为bai网页请求超时,也du就是浏览网站网页所发出zhi的请求没有反应或者未响应。

    出现dao"504 Gateway Time-out"的原因:

    1、在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。

    2、504 Gateway Time-out错误多是存在于Nginx网站服务器环境下,多与nginx.conf与php-fpm.conf设置是否正确合理有关。

    504GatewayTime-out错误的解决方法:

    1、就是根据网站服务器性能及网站流量等诸多因素整合考虑,正确合理的设置niginx.conf和php-fpm.conf配置。

    2、进行正确合理nginx.conf配置,我们需要先了解和清楚我们网站服务器的配置性能,包括CPU、内存等,并对网站服务器进行必要的性能测试,从而准确的掌握网站服务器自身性能状况。

    3、其次,是通过网站统计代码的添加,分析段时间内网站流量状况,比如:百度统计、CNZZ站长统计等,掌握网站日流量及PHP-CGI请求的大概情况。

    根据我们掌握的服务器性能状况及网络流量情况,合理的对nginx.conf中的下列字句进行合理正确的设置。

    fastcgi_connect_timeout300s;

    fastcgi_send_timeout300s;

    fastcgi_read_timeout300s;

    fastcgi_buffer_size128k;

    fastcgi_buffers8128k;#8128

    fastcgi_busy_buffers_size256k;

    fastcgi_temp_file_write_size256k;

    fastcgi_intercept_errorson;

    这些字句的设置规定了PHP-CGI的连接、发送和读取时间限制,需根据服务器性能及网络流量综合考虑设置,时间设置过长会给网站服务器造成压力,导致网站响应缓慢,甚至服务器死机;

    时间设置过短,则就会出现504 Gateway Time-out或者其他CGI无响应错误。

    4、还有就是php-fpm.conf中max_children与request_terminate_timeout两个重要参数的设置。

    这两个参数的设置需要我们根据PHP程序情况及服务器带宽状况综合考虑并计算出合理准确的值,才能够避免504 Gateway Time-out或者其他CGI无响应错误的出现。

    5、通常情况下,一般网站,可将request_terminate_timeou设置在900s左右,而max_children值根据服务器内存大小和CGI请求数目设置为合理的数值,一般设置为800M左右。

    扩展资料:

    "504 Gateway Time-out"其他修复方式:

    情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成

    这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

    情况一解决办法:

    默认的fastcgi进程响应的缓冲区是8K,我们可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k,这表示设置fastcgi缓冲区为8块128k大小的空间。

    情况一解决办法(改进):

    在上述方法修改后,如果还是出现问题,我们可以继续修改nginx的超时参数,将参数调大一点,如设置为60秒:send_timeout 60;

    经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。

    回答二:

    一般bai看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲du区太小造成的zhi, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这dao个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
    现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K
    默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点
    在nginx.conf里, 加入:
    fastcgi_buffers 8 128k
    这表示设置fastcgi缓冲区为8×128k
    当然如果您在进行某一项即时的操作, 可能需要nginx的超时参数调大点, 例如设置成60秒:
    send_timeout 60;
    只要调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错, 但是也可能是由于其他的原因, 目前关于nginx的资料不是很多, 很多事情都需要长期的经验累计才有结果, 期待您的发现哈!

    展开全文
  • nginx 504 Gateway Time-out错误解决办法

    千次阅读 2019-06-30 19:38:05
    nginx 504 Gateway Time-out错误解决办法 我们经常会发现大量的nginx服务器访问时会提示nginx 504 Gateway Time-out错误了,下面我来总结了一些解决办法,有需要了解的同学可进入参考。  一般看来, 这种情况可能是...

    nginx 504 Gateway Time-out错误解决办法
    我们经常会发现大量的nginx服务器访问时会提示nginx 504 Gateway Time-out错误了,下面我来总结了一些解决办法,有需要了解的同学可进入参考。
      一般看来, 这种情况可能是由于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;
      我只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错
      另一篇文章
      首先是更改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模式。
     apache-like

    另外的解决方案http://www.wdlinux.cn/bbs/thread-1838-1-1.html

    完美解决Nginx 504 Gateway time-out
     最近用dedecms建的一个网站新增了大批内容,有三个栏目的内容量都超过了两千篇,超过两千三百篇的两个栏目在生成栏目列表的时候就出现了504 Gateway time-out 服务器用的是nginx,我不是很懂,服务器维护人员在网上随便找了一篇文章,修改了nginx的缓存设置,不管用,他就不管了,可是我不能不管啊,不能生成列表页面,那后面的内容不是都不能用了么?  把数据库下载到本地,在本地配置了nginx,试了很多遍,都不行,又改到Apache下面,更夸张,生成了83个页面就不能继续了,看来还是nginx更厉害一点,虽然出现504 Gateway time-out,但好歹能够全部生成。
      只好又继续在网上找更多的解决办法,尝试了N多次以后,终于让我找到了一个有用的方法,想想以后可能还有碰到这样的问题,就把那篇文章复制过来放在这里,供以后参考吧,对有同样问题的朋友也是一个帮助。
    下面部分是引用部分,我自己不懂技术的,在我的dedecms5.6里面有用,别人的自己尝试吧。

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。
      Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。
      解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关。
      而正确的设置需要考虑服务器自身的性能和访客的数量等多重因素。
      以我目前的服务器为例子CPU是奔四1.5G的,内存1GB,CENTOS的系统,访客大概是50人左右同时在线。
      但是在线的人大都需要请求PHP-CGI进行大量的信息处理,因此我将nginx.conf设置为:
      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;
      这里最主要的设置是前三条,即
      fastcgi_connect_timeout 300s;
      fastcgi_send_timeout 300s;
      fastcgi_read_timeout 300s;
      这里规定了PHP-CGI的连接、发送和读取的时间,300秒足够用了,因此我的服务器很少出现504 Gateway Time-out这个错误。最关键的是php-fpm.conf的设置,这个会直接导致502 Bad Gateway和504 Gateway Time-out。
      下面我们来仔细分析一下php-fpm.conf几个重要的参数:
      php-fpm.conf有两个至关重要的参数,一个是”max_children”,另一个是”request_terminate_timeout”
      我的两个设置的值一个是”40″,一个是”900″,但是这个值不是通用的,而是需要自己计算的。
      计算的方式如下:
      如果你的服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的话你可以直接将”request_terminate_timeout”设置成0s。0s的含义是让PHP-CGI一直执行下去而没有时间限制。而如果你做不到这一点,也就是说你的PHP-CGI可能出现某个BUG,或者你的宽带不够充足或者其他的原因导致你的PHP-CGI能够假死那么就建议你给”request_terminate_timeout”赋一个值,这个值可以根据你服务器的性能进行设定。一般来说性能越好你可以设置越高,20分钟-30分钟都可以。由于我的服务器PHP脚本需要长时间运行,有的可能会超过10分钟因此我设置了900秒,这样不会导致PHP-CGI死掉而出现502 Bad gateway这个错误。
      而”max_children”这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。设置”max_children”也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右,因此我的”max_children”我设置成40个,20M*40=800M也就是说在峰值的时候所有PHP-CGI所耗内存在800M以内,低于我的有效内存1Gb。而如果我的”max_children”设置的较小,比如5-10个,那么php-cgi就会“很累”,处理速度也很慢,等待的时间也较长。如果长时间没有得到处理的请求就会出现504 Gateway Time-out这个错误,而正在处理的很累的那几个php-cgi如果遇到了问题就会出现502 Bad gateway这个错误。

    wdcp在N+A里,根本就用不到php-fpm
    可以调整下nginx.conf的部分参数

    又一个解决方法http://www.wdlinux.cn/bbs/thread-2194-1-2.html

    在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模式。
    apache-like

    LNMP的朋友试试这个 (以512内存的vps为例)
    1.调整php-fpm.conf的相关设置/www/wdlinux/etc/:
    32
    30s

    22.调整nginx.conf的相关设置/www/wdlinux/nginx-1.0.12/conf:
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;

    如果没有以上数值,直接在里面添加即可。对了修改了这些参数,内存消耗有所增加。如果不能接受的,建议不要修改。

    转载:https://www.cnblogs.com/xiamidong/p/4105583.html

    展开全文
  • 504 Gateway Time-out的解决方法

    千次阅读 2021-01-22 11:03:02
    1、/etc/nginx/conf.d/default.conf,添加如下信息: location / { try_files $uri $uri/ @router; root /home/axs-zx/Data/VueData/system; ... #下面就是新添加的信息,解决... proxy_send_timeout 300; proxy_read

    1、/etc/nginx/conf.d/default.conf,添加如下信息:

    location / {
            try_files $uri $uri/ @router;
            root   /home/axs-zx/Data/VueData/system;
            index  index.html index.htm;
            #下面就是新添加的信息,解决504错误
            proxy_send_timeout 300;
            proxy_read_timeout 300;
            proxy_connect_timeout 300;
        }
    

    1、/etc/nginx/nginx.conf,添加如下信息:

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        client_max_body_size 200M;	
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
        #用于tomcat反向代理,解决nginx 504错误 
        proxy_connect_timeout 300; #单位秒 
        proxy_send_timeout 300; #单位秒 
        proxy_read_timeout 300; #单位秒 
        proxy_buffer_size 16k; 
        proxy_buffers 4 64k; 
        proxy_busy_buffers_size 128k; 
        proxy_temp_file_write_size 128k;
        # ps:以timeout结尾配置项时间要配置大点
    }
    
    展开全文
  • 504 Gateway Time-out原因及解决方法

    千次阅读 2020-10-13 19:16:52
    1, 今天在webpack通过proxy开发的时候,接口时正常的,但是上到测试机,通过nginx转发的时候,就会出现504 Gatway time-out 思路 1, 初步判断时nginx的转发写的有问题,但是看了下也没什么问题 2,查找errlog,也...

     

    1, 今天在webpack通过proxy开发的时候,接口时正常的,但是上到测试机,通过nginx转发的时候,就会出现504 Gatway time-out

    思路

    1, 初步判断时nginx的转发写的有问题,但是看了下也没什么问题
    2,查找errlog,也没什么具体错误提示,
    3,查了下,觉得可能nginx的设置的时间太短,于是设置了十分钟,还是time-out
    4,判断可能nginx服务器和转发的服务器,不能通信,ping了一下,果然是这样

    5、或者设置http请求的超时时间为3600,即为一个小时

     

    展开全文
  • 但是在我们去访问大流量或者内容数据量较多的网站时,打开网页偶尔就会出现504 gateway time-out,这到底是什么意思?网页出现这种情况又该如何解决呢? 首先,大家对于504 Gateway Time-out的字面意思可以理解为...
  • 504 Gateway Time-out解决方法

    万次阅读 2019-08-12 10:46:56
    504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又...
  • 504Gateway Time-out,就字面意思,我们可以理解为网页请求超时,也就是游览网页所发出的请求没有反应或者未响应。 一、出现“504 Gateway Time-out”的原因: 1、在网站程序层面来说,就是请求未能够执行相应的...
  • 504 Gateway Time-out 解决方法

    万次阅读 2018-09-20 10:25:31
    504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理...
  • 504 Gateway Time-out错误的解决方法

    千次阅读 2018-11-02 19:59:04
     fastcgi_connect_timeout300s;    fastcgi_send_timeout300s;    fastcgi_read_timeout300s;    fastcgi_buffer_size128k;    fastcgi_buffers8128k;#8128    fastcgi_busy_buffers_size256k;    ...
  • 504 Gateway Time-out根据字面意思,我们可以理解为页面请求超时的晕啊因,也就是浏览网站网页所...首先想到的方法是设置proxy_read_timeout,也就是请求成功后,等待后端处理数据返回前台的时间,也可以说是后端服...
  • 报错信息504 Gateway Time-out原因是程序执行时间过长,导致请求超时。解决方法首先,尽可能地优化程序代码的执行时间。其次,修改配置文件。...keepalive_timeout 600; fastcgi_connect_timeout 600; fastcgi_s...
  • 在配置项http{}片段下添加一下配置 proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; 以秒为单位,根据自己的服务器设置即可 ...
  • Nginx 502 Bad Gateway... Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。 解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-f...
  • 某应用的后台,通过后面界面上传一个excel文件时,上传到半截是,后面界面显示 504 gateway time-out错误。 问题调查: 经了解,后台应用界面为使用ingress方式访问,504错误界面显示的nginx版本信息和ingress...
  • 如何解决“504 Gateway Time-out”错误

    万次阅读 2018-06-09 22:11:01
    做网站的同学经常会发现一些nginx服务器访问时候提示504 Gateway Time-out错误,一般情况下是由nginx默认的fastcgi进程响应慢引起的,但也有其他情况,这里我总结了一些解决办法供大家参考。方法/步骤情况一:由于...
  • nginx出现504 Gateway Time-out的解决思路

    千次阅读 2018-09-28 16:18:07
    在安装完Nginx+PHP-fpm+Mysql后 (如何安装LNMP环境,请参考快速配置LNMP环境Nginx0.8.54+MYSQL5.5.16+PHP5.3.8+CentOS 6),跑PHP的应用会经常出现504 Gateway Time-out 或者502 Bad Gateway的情况。 这个问题耽误...
  • nginx 出现504 Gateway Time-out的解决方法

    千次阅读 2018-11-30 11:04:14
    nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。    通常有以下几种情况导致 1.程序在处理大量数据,...
  • 背景描述 1、modsim做modbus设备从站 2、modcan做modbus设备主站 ...4、modbus message time out 解决方案 建议用modbus poll与modbus slave两个软件来做主从站测试,modscan不适合做这个,存在缺陷; ...
  • 1:php.ini max_execution_time = 30 php脚本最大执行时间 ,将数值调大 2:在管理员命令提示符窗口中输入命令 ipconfig /flushdns
  • 报错504 Gateway Time-out 分析nginx和uwsgi整合时有三个参数可以用于设置超时时间:1.uwsgi_connect_timeout: 默认60秒,与uwsgi-server连接的超时时间,该值不能超过75秒.若在超时时间内未能成功连接则断开连接...
  • 最近项目在测试环境没有发现问题,上线以后发现nginx 出现...发现 fastcgi_read_timeout 10; 设置的是10s,这里设置的是前端FastCGI服务器的相应超时时间 我改成15秒就可以有数据了,这当然不是解决问题的方案 我去看
  •  send_timeout 60;  经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。 情况二:PHP环境的配置问题  这里我们需要对php-fpm和nginx进行配置修改。因为...
  • 今天在刷新公司项目页面时发现有个板块一直刷新不出数据,最后发现接口报错(504 Gateway Time-out) 通过查看代码发现有个sql语句,如下,特别慢 select `vdc1`, `vdc2`, `vdc3`, `vdc4`, `vdc5`, `vdc6`, `...
  • var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'test' ...
  • urllib.urlopen()超时问题 : 504Gateway Time-out问题描述: 没有设置timeout参数,结果在网络环境不好的情况下,时常出现read()方法没有任何反应的问题,程序卡死在read()方法里,搞了大半天,才找到问题,给...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,776,571
精华内容 710,628
关键字:

time-out