回答
收藏
分享
举报
NGINX正向代理出现大量TIME_WAIT问题
提问于2022-07-18 14:36

浏览 929

正向代理配置:

  http {
    server {
        listen 8080;
       # dns resolver used by forward proxying
       resolver 8.8.8.8;
       location / {
           proxy_http_version 1.1;
           proxy_set_header Connection "";
           proxy_set_header Host $host;
           proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
           proxy_pass $scheme://$host;
       }
    }
}  

在处理高并发请求代理时,NGINX后端会出现大量TIME_WAIT连接。

分析下来,NGINX每次代理转发请求时,都会根据应用发过来的请求来与后端服务建链,尽管设置http长连接属性,但每处理完一笔交易就会断开后端连接,长此以往就会出现大量TIME_WAIT连接。

如果并发压力比较大时,就瞬间出现大量TIME_WAIT连接,进而导致NGINX侧系统资源不足(随机端口不足)。


在这种模式下,如何解决TIME_WAIT问题?是否有类似方向代理upstream中配置连接池的方式来避免频繁断链?


已修改于2023-03-17 09:03



写下您的回答
发表回答
全部回答(1)

按点赞数排序

按时间排序

可以通过 proxy_set_header 设置,keepalive 。

赞同

0

回复举报

回答于2022-10-31 14:11



回复jiayouachunyu
回复
提问者
李永峰
打工人
0
文章
1
问答
0
粉丝
相关问答

ticket已经明确地表明了NGINX开发团队的态度,不支持环境变量实现正向代理,可以尝试使用stream配置proxy_pass转发数据,不过解决方案就不是那么简单了。

点赞 0
浏览 740

我重新下载openresty1.19.3.2

同样的操作也成功了,


点赞 0
浏览 1.8k
数据库的转换对百度没影响,蜘蛛也不会爬行到那
点赞 0
浏览 551