首页 新闻 会员 周边

由ngnix 转发.netcore docker程序 高峰期大量500 502 504

0
悬赏园豆:50 [已解决问题] 解决于 2020-05-09 23:11

在生产环境碰到高峰期ngnix出现大批量的500 502 504错误日志记录。发现程序里面根本没有收到ngnix发送的请求信息。有大神有碰到过相应的问题吗?程序是用.netcore3.1开发的,用docker部署的

yjq_net的主页 yjq_net | 初学一级 | 园豆:2
提问于:2020-04-28 17:41
< >
分享
最佳答案
0

还是先将服务的慢返回结果优化

yjq_net | 初学一级 |园豆:2 | 2020-05-09 23:10
其他回答(3)
0

nginx 容器在使用端口转发时在高并发下本来就有性能问题

收获园豆:50
dudu | 园豆:30994 (高人七级) | 2020-04-28 17:48

有办法优化处理吗

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-28 17:49

@yjq_net: nginx 容器直接使用 host 网络,或者不用 nignx 直接用 kestrel 端口转发

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2020-04-28 17:56

@dudu: 昨天也尝试了直接使用host网络,但是也还是出现了500 502 504的情况

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-28 18:04

@yjq_net: 高峰时有多少并发?

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2020-04-28 19:35

@dudu: 单台700,有十几台服务器

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-28 21:25

@yjq_net: 有没有修改 nginx 的 worker_connections 配置,参考 nginx异常 [alert] 940#940: 768 worker_connections are not enough 解决

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2020-04-29 14:07

@dudu: 我们设置的参数是30000

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-29 14:54

@dudu: 目前我们打算先优化代码响应,有个别接口响应会相对较慢,先优化这部分再观察

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-29 14:58

目前抓包反馈 ngnix发送15S之后,服务无响应导致ngnix记录502

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-30 10:49

这是ngnix发送应用服务的抓包结果

支持(0) 反对(0) yjq_net | 园豆:2 (初学一级) | 2020-04-30 11:05
0

围观,还是说不部署在docker中就暂时没这个问题?

日暮青色 | 园豆:475 (菜鸟二级) | 2020-04-30 09:01
0

502 问题,一般都是因为 后端服务器连续几次超时,导致nginx认为后端服务挂了,你可以在nginx的upstream配置里,将后端服务器IP暴露在http response中来观察。也就是问题还是出在后端的那个.net core程序上

Berkaroad | 园豆:202 (菜鸟二级) | 2020-05-10 06:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册