资讯动态

与时俱进,精研业务

浏览Nginx服务器上网站,服务器端Nginx错误日志报提示10061错误,终端用户浏览器报504 gateway time-out错误应该如何解决?

点击复制标题网址

——温馨提示——

已复制到剪贴板,可粘贴到下一处。


时间:2023-04-14   查看:1862

编者按:

查明原因,因为服务器某一个网站用Nginx映射外网端口,但是没有配置超时时间。 解决办法:找到该网站location块中配置中关于proxy_pass部分,在其下面增加以下示范代码:#解决504 gateway time-out问题。网站服务器用了Nginx映射外网端口,但是没有配置超时时

        一、查找原因

        管理维护WEB服务器过程中,发现WEB服务器Nginx错误日志提示10061: No connection could be made because the target machine actively refused it错误,同时会给终端用户浏览器报504 gateway time-out错误提示。

未命名-30.jpg

        经多方排查,初步确定原因为:

        一是web应用程序提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器。如果后端正常的业务处理时间,如php-cgi进程处理相关的请求,超过了nginx配置文件中设置的超时时间(nginx.conf配置文件中,参数设置为:keepalive_timeout  60;),导致nginx给其返回504 gateway time-out错误。

fastcgi.jpeg

        二是WEB服务器中Nginx设置了proxy_pass,如果没有为其配置超时时间,以致出现服务器给浏览器报504 gateway time-out错误问题。

proxy_pass.png


        二、解决办法

        找到该网站location模块配置中关于proxy_pass部分,在其下面增加以下示范代码(具体时间以适合自己的程序正常高效运转为准):

        #——————————

        #为Nginx映射外网端口配置超时时间,解决504 gateway time-out问题。

        proxy_connect_timeout  60s;#nginx跟后端服务器连接超时时间(代理连接超时)

        proxy_send_timeout  60s;#后端服务器数据回传时间(代理发送超时)

        proxy_read_timeout  60s;#连接成功后,后端服务器响应时间(代理接收超时)

        fastcgi_connect_timeout 60s;#指定nginx与后端fastcgi server连接超时时间

        fastcgi_send_timeout 60s;#指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)

        fastcgi_read_timeout 60s;#指定nginx向后端传送响应超时时间(指已完成两次握手后向fastcgi传送响应超时时间)

        #——————————

        三、观察效果

        重启Nginx,观察504 gateway time-out错误问题是否得到真正解决。

        (以上均为维护服务器过程中的实操分享,如您有疑问可以添加邓杰律师微信交流)



本文标签

发表评论:

评论记录:

未查询到任何数据!