前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【故障排查】nginx504

【故障排查】nginx504

作者头像
needrunning
发布2019-07-12 14:56:24
4.9K1
发布2019-07-12 14:56:24
举报
文章被收录于专栏:图南科技图南科技

技术背景

LNMP环境下,反向代理服务器nginx错误日志大量报错,显示504

504.png

upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream

理论回看

Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI

一般情况下,web应用程序提交动态请求的时候,nginx会直接把 请求转交给php-fpm,而php-fpm再分配php-cgi进程来处理相关的请求,之后再依次返回,最后由nginx把结果反馈给客户端浏览器。

原因列举如下

1 作为调用方,服务提供方接口异常,造成访问超时,nginx交由PHP处理的任务长时间没有返回,nginx直接返回504。而这种超时,在PHP调用层面的的代码逻辑里很难捕获到,并且习惯上也不捕获,交由框架层面的异常捕获器。

2 作为服务提供者,自身服务访问数据库超时不返回或者PHP层面业务处理严重耗时,程序设计不合理,造成长时间延迟超时。

fastcgi进程

问题追踪

如果PHP服务出现短时间大量504错误,会把整个fastcg通道拥塞堵死,最后就是PHP服务挂了。

如果多个服务以虚拟主机的形式在同一台服务器上,那么这多个服务都会收到影响,最直观的前台体验就是访问速度慢,或者直接打不开。

定时任务,跑批,数据库批量数据更新相关业务容易出现nginx错误。

网络上通过配置解决504的方式,正常情况下不建议使用,优先考虑程序设计和实现方面的不足,参照我之前的一篇文章

PHP性能优化之连接超时如何解https://mp.weixin.qq.com/s/EFw__gYaZuq48IciadZyAA

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 技术背景
  • 理论回看
  • 问题追踪
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档