首页 > 系统相关 >nginx出现504错误的原因分析及解决

nginx出现504错误的原因分析及解决

时间:2023-04-27 19:57:08浏览次数:117  
标签:错误 60s nginx proxy timeout 504 超时 fastcgi

线上环境使用的是nginx代理到后端应用(java), 对应用进行了一次压测发现nginx出现大量的504代码,即网关超时(Gateway Time-out)错误。 

原因分析:首先504是网关超时错误,通常是nginx将请求代理到后端应用时,后端应用没有在规定的时间返回数据,需要开发检查下应用那块有什么耗时的操作,比如:

1、连接操作数据库时响应慢、 去调用外部的接口时响应慢

2、nginx的proxy超时时间配置,比如nginx配置的超时时间为60s,而后端应用需要100s才能返回

解决方法:

1、一般和nginx关系不大, 需要让开发查下是哪块有耗时的操作,找到原因才好解决(重点)

2、可以适当配置下nginx调大proxy的相关超时时间,给后端应用多一点的处理时间, 但这时间不是越大越好,如果后端程序要很久才将结果返回nginx,说明程序需要优化

先看下nginx使用的是什么协议(proxy/fastcgi):

 我这边是使用proxy_pass进行请求转发,那我们就配置proxy相关的参数

# 调整到100s
proxy_connect_timeout    100;  #nginx跟后端服务器连接超时时间(代理连接超时)默认60s
proxy_read_timeout       100; #后端服务器数据回传时间(代理发送超时)默认值60s
proxy_send_timeout       100;  #连接成功后,后端服务器响应时间(代理接收超时)默认值60s

 如果你们是使用fastcgi_pass进行请求转发,那就配置fastcig相关的参数

fastcgi_connect_timeout 1800s;#nginx跟后端服务器连接超时时间(代理连接超时)默认60s
fastcgi_send_timeout 1800s;#后端服务器数据回传时间(代理发送超时)默认值60s
fastcgi_read_timeout 1800s;#连接成功后,后端服务器响应时间(代理接收超时)默认值60s

3、保证nignx服务器资源是足够的

 

转载自==》https://www.cnblogs.com/zouhong/p/16640095.html

标签:错误,60s,nginx,proxy,timeout,504,超时,fastcgi
From: https://www.cnblogs.com/ZhaoHS/p/17333807.html

相关文章

  • Nginx简介
    简介Nginx是一款开源的、高性能的HTTP和反向代理的WEB服务器,同时也是一个POP3/SMTP/IMAP代理服务器。nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理服务器进行负载均衡的实现。WEB服务器WEB服务器也叫网页服务器,英文名叫WebServer,主要功能......
  • asp.net com,未能转换为类型库。类型库导出程序在处理,时遇到了错误。错误: 找不到元
    我把[assembly:ComVisible(true)]这个设置为true,就报下边的错误错误:程序集“D:\MyDocuments\VisualStudio2005\Projects\ClientOperation\active\bin\Debug\active.dll”未能转换为类型库。类型库导出程序在处理“active.myControl,active”时遇到......
  • nginx 正则反向代理到k8s
    代码:nginx正则反向代理到k8s的服务:http{resolverkube-dns.kube-system.svc.cluster.local;server{listen80;#serviceslocation~/(\w+)/{ proxy_passhttp://$1.default.svc.cluster.local:8888;}}配置:  ......
  • document.forms[0],得不到文本框的值,没错误提示的错误,表单提交
    我测试错误信息,可是我明明往文本框里输入值了,却告诉我没输入值,还不报错,我就找原因,检查了好几遍,也没找出错误,最后定位在document.forms[0],因为我的一个jsp里有好几个form表单,我那个得不到值的是最后一个表单,第4个,我就把document.forms[0]改成了document.forms[......
  • slmgr 命令提示“非核心”错误解决方法
    第一步:regeditHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SoftwareProtectionPlatformSkipRearm的值修改为1,重启。第二步:slmgrslmgr-rearm以管理员身份运行上述命令后,重启。第三步:安装ipkslmgr/ipk[kms密钥] ......
  • npm安装yarn报npm ERR Unexpected token ‘.‘错误的解决办法
    问题背景最近发现很多前端框架或前端产品的学习和使用都用到了yarn,一开始不知道这是干什么的,后在网上搜索说是JS包管理工具,我一致都是用的nodeJs,难道node过时了,然后有一顿搜索,网上是这么介绍的。Yarn是什么?“Yarn是由Facebook、Google、Exponent和Tilde联合推出了一个新的JS......
  • 解决MySQL数据库同步1236错误
    转载于:https://www.cnblogs.com/dukuan/p/8744295.html1、报错如下:Gotfatalerror1236frommasterwhenreadingdatafrombinarylog:'TheslaveisconnectingusingCHANGEMASTERTOMASTER_AUTO_POSITION=1,butthemasterhaspurgedbinarylogscontaining......
  • 【SWITCH】java中的switch,一直没发现的错误
    关于switch-case的的使用误区先看一段代码Integerbb=1;switch(bb){case1:System.out.println(1);case2:System.out.println(2);default:System.out.println(3);}会打印什么呢?只打印1,还是会打印123呢?答案是:123我......
  • Nginx七层反向代理和负载均衡
    Nginx七层反向代理和负载均衡介绍Nginx不仅是一个出色的web软件,其七层代理和负载均衡也是相当出色。Nginx做前端代理,当用户请求服务时,可以根据url进行判断,然后分配到不同的后台webserver上。Nginx的负载均衡实现原理:首先在http模块中配置使用upstream模块定义后台的webserver的池......
  • springboot入门时,发现Java版本与Spring boot版本无法对应导致错误的问题解决
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......