nginx 返回 502 Bad Gateway

现象描述

客户反馈请求服务时不时的会返回502,返回结果如下。

<html> 
  <head> 
  <title>502 Bad Gateway</title>
  </head> 
  <body> 
  <center><h1>502 Bad Gateway</h1></center> 
  <hr><center>nginx</center> 
  </body>
</html> 

请求流程

一开始以为是我们的nginx服务出现了问题,根据请求URL查询了nginx的access_log和error_log,但是都没有看到该请求。

后来咨询了运维和客户的开发人员,发现他们请求使用了nginx做正向代理,然后公司使用的是openresty。

梳理了一下请求流程如下:


请求流程

由于openresty返回异常的情况带有openresty的文字,所以猜测客户的nginx发生了问题,让客户的开发人员查询相关日志。

客户的nginx日志如下,从日志可以看到是当客户端nginx读取response时,上游关闭了连接。

268057851 upstream prematurely closed connection while reading response header from upstream

上游是阿里云SLB,基本不会出现问题,所以看 openresty的error.log,发现在发生异常的时间范围有很多如下的日志。

openresty error.log 的默认路径:/usr/local/openresty/nginx/logs/

2023/06/19 10:26:59 [alert] 5345#0: 1024 worker_connections are not enough
2023/06/19 10:26:59 [alert] 5345#0: 1024 worker_connections are not enough
2023/06/19 10:26:59 [alert] 5345#0: *5604161168 1024 worker_connections are not enough while connecting to upstream, client: 39.140.131.228, server: xxx.xxx.cn, request: "POST /vas/app/operate/saveTaskPosition HTTP/2.0", upstream: "http://10.12.25.44:25001/injury/app/operate/savePosition", host: "xxx.xxx.cn"
2023/06/19 10:26:59 [alert] 5345#0: 1024 worker_connections are not enough
2023/06/19 10:26:59 [alert] 5345#0: 1024 worker_connections are not enough
2023/06/19 10:26:59 [alert] 5345#0: 1024 worker_connections are not enough

搜索了一下这个问题导致的原因,是nginx 的worker_connections配置的不够。

让运维人员查看了一下配置,使用的还是默认配置1024,修改为10240后持续观察两天发现未出现该问题。
修改 /usr/local/openresty/nginx/conf/nginx.conf

events {
    worker_connections  10240;
}

本地验证

本地使用docker搭建了openstry的环境,配置 worker_connections 为2,curl请求返回
openstry版本:1.13.6

使用windows bash 工具发送url请求

curl localhost/rule  --verbose
*   Trying 127.0.0.1:80...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to localhost (127.0.0.1) port 80 (#0)
> GET /rule HTTP/1.1
> Host: localhost
> User-Agent: curl/7.83.1
> Accept: */*
>
* Empty reply from server
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Closing connection 0
curl: (52) Empty reply from server

openstry 日志

2023/06/25 07:51:56 [alert] 7#7: 2 worker_connections are not enough
2023/06/25 07:52:53 [alert] 7#7: 2 worker_connections are not enough
2023/06/25 07:53:40 [alert] 7#7: 2 worker_connections are not enough

使用wireshark 抓取 Adapter for loopback traffic capture .
过滤器表达式 tcp.port == 80

wireshark抓包

可以看到三次握手建立后,服务端马上开始四次挥手。

总结

  1. 一定要熟悉请求的流程。
  2. 要先看日志,日志才能看到具体问题的原因。
  3. 事后要持续关注。

参考资料

nginx [alert] worker_connections are not enough

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 来自公众号:Java情报局作者:π大新 1. Nginx简介 1.1 Nginx 概述 NGINX是一个免费、开源...
    夜空_2cd3阅读 1,077评论 1 12
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 1,860评论 0 3
  • 一.Nginx是什么,常用于哪些场景及其优点是什么?? 高性能web服务器,常用于 静态web服务器(动静分离)、...
    只猿阅读 1,057评论 0 0
  • 由于业务方的一个接口突然猛增,为了不影响其他服务,我们决定修改这个接口的配置让其间接下线处理。但是万万没想到的是...
    taj3991阅读 4,246评论 2 1
  • Nginx 高性能的HTTP服务器程序,又是HTTP/IMAP/POP3协议的反向代理服务器 面对较高并发请求时,...
    SRE1阅读 6,619评论 2 5