浏览 1.7k
使用nginx版本:nginx-1.20.1-1.ngx.fsv2r10.aarch64
关键的conf文件中配置:
stream {
upstream xxxxx0 {
server <服务器的ip>:<服务器的端口>;
}
server {
listen <监听的ip>:<监听的端口> udp;
proxy_pass xxxxx0;
}
}
一开始对接成功,一段时间没有注意后,发现nginx转发失败,定位发现
netstat -anlup | grep nginx的回显如下:
------------------------
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 213504 0 <监听的ip:端口> <服务器的ip:端口> ESTABLISHED <nginx的pid>/nginx: worke
-------------------------
Recv-Q接受队列数量非常多,抓包发现服务器有给nginx回复包,但是nginx没有回复给客户端。初步认为是因为这个连接卡住,无法处理。手动调用其他端口发现能建立新的连接、请求回复正常。
虚心求教为什么情况会导致nginx连接的Recv-Q数量会如此多、导致请求异常?

按点赞数排序
按时间排序
sticky模块只能在linux下吧,win下没有。tomcat好像有个session复制吧,或者可以用共享session。
没办法完全不受影响的,因为mirror是子请求,当子请求未结束时,主请求消耗的内存至少是无法释放的。你可以尝试在/mirror里,把超时时间大幅度调低,包括connect/read/send,再压下看看。
微信公众号
加入微信群