|
<div class="f14 mb10" id="read_tpc">
<span style="display:none"> #jW-&a </span> <br />1.问题分析<span style="display:none"> Lm~<BBp. </span> <br /><span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=nginx',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_5">nginx</span>访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 <span style="display:none"> :>{!%-1Z </span> <br /> <span style="display:none"> tngB;9c+w </span> <br />通常有以下几种情况导致<span style="display:none"> M%`CzCL
u </span> <br /><span style="display:none"> k\.9iI'6 </span> <br /><span style="display:none"> 'Og@<~/Xy </span> <br />1.程序在处理大量<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=数据',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_1">数据</span>,导致等待超时。 <span style="display:none"> :vb5J33U </span> <br />2.程序中调用外部请求,而外部请求响应超时。 <span style="display:none"> olv?$]
</span> <br />3.连接<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=数据库',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_2">数据库</span>失败而没有停止,死循环重新连。<span style="display:none"> 2P^|juc)sU </span> <br /><span style="display:none"> yiQ?pM </span> <br /><span style="display:none"> 1#6emMV.` </span> <br />出现这种情况,我们可以先<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=优化',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_7">优化</span>程序,缩短执行时间。另一方面,可以调大nginx超时限制的<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=参数',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_6">参数</span>,使程序可以正常执行。<span style="display:none"> 1*u]v{JJ( </span> <br /><span style="display:none"> (T#$0RFq </span> <br /><span style="display:none"> ih".y3 </span> <br />对于访问超时的设定,nginx与<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=php',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_3">php</span>都有相关的设置,可以逐一进行<span onclick="sendmsg('pw_ajax.php','action=relatetag&tagname=修改',this.id)" style="cursor:pointer;border-bottom: 1px solid #FA891B;" id="rlt_4">修改</span>。<span style="display:none"> MGm*({% </span> <br /><span style="display:none"> PM[_0b </span> <br /><span style="display:none"> /S]RP>cQ </span> <br /><span style="display:none"> \L(cFjLIl </span> <br /><span style="display:none"> /RJ </span> <br /><span style="display:none"> ;yomaAr </span> <br /><span style="display:none"> 1OMXg=Y </span> <br />2.解决方法<span style="display:none"> NSz} </span> <br />nginx配置<span style="display:none"> ;zJb("n </span> <br /><span style="display:none"> H9(?yI@Zr# </span> <br /><span style="display:none"> sWo`dZ\6WB </span> <br />nginx.conf中,设置以下几个参数,增加超时时间<span style="display:none"> 4-.K<-T%D </span> <br /><span style="display:none"> :,0(aB </span> <br /><span style="display:none"> 7yfh4-1M </span> <br />fastcgi_connect_timeout <span style="display:none"> kP%hgZ </span> <br />fastcgi连接超时时间,默认60秒<span style="display:none"> *yRsFC{, </span> <br /><span style="display:none"> $o?U= </span> <br /><span style="display:none"> Sk|e#{ </span> <br />fastcgi_send_timeout <span style="display:none"> =:s`C,l.4 </span> <br />nginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒<span style="display:none"> M9W
zsWM </span> <br /><span style="display:none"> +Umsr </span> <br /><span style="display:none"> %i9 e<.Ot </span> <br />fastcgi_read_timeout <span style="display:none"> nvd\UM </span> <br />fastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒 <span style="display:none"> 9Y,JYc# </span> <br /><span style="display:none"> *,$5EN </span> <br /><span style="display:none"> N@c GjpQ </span> <br /><span style="display:none"> X
61|:E </span> <br /><span style="display:none"> fIoc)T </span> <br />php配置<span style="display:none"> }i~k:kmV </span> <br /><span style="display:none"> &|k=mxox\ </span> <br /><span style="display:none"> wN!\$i@E: </span> <br />php.ini<span style="display:none">
B(;MI` </span> <br /><span style="display:none"> vdq=F|& </span> <br /><span style="display:none"> !l
$d^y345 </span> <br />max_execution_time <span style="display:none"> Zt!#KSF7% </span> <br />php脚本最大执行时间 <span style="display:none"> S/`#6 </span> <br /> <span style="display:none"> 'Bue* </span> <br />php-fpm<span style="display:none"> @Ul3J )=m </span> <br /><span style="display:none"> dBXiLrEbs </span> <br /><span style="display:none"> 7~XC_Yc1 </span> <br />request_terminate_timeout <span style="display:none"> .]vb\NBK7 </span> <br />设置单个请求的超时时间<span style="display:none"> YcobK#c </span> <br /><span style="display:none"> /qIQE&V- </span> <br /><span style="display:none"> xQFY/Z </span> <br /> <span style="display:none"> '."_TEIF </span> <br />php程序中可加入set_time_limit(seconds)设置最长执行时间<span style="display:none"> h vYRAQR: </span> <br /><span style="display:none"> [K3
te </span> <br /><span style="display:none"> |c/=9Bb </span> <br />例如 set_time_limit(0) 表示不超时。
</div>
</div>
<!--content_read-->
</td>
</tr>
<tr>
|
|