Worker other than the master is listening to the socket
allenhe
nginx-forum at forum.nginx.org
Fri Apr 19 07:16:14 UTC 2019
Nginx version: 1.13.6.1
1) In our use case, the Nginx is reloaded constantly. you will see lots
worker process hanging at "nginx: worker process is shutting down" after
couple days:
58 root 0:00 nginx: master process ./openresty/nginx/sbin/nginx
-p /opt/applicatio
1029 nobody 0:22 nginx: worker process is shutting down
1030 nobody 0:27 nginx: worker process is shutting down
1041 nobody 0:54 nginx: worker process is shutting down
1054 nobody 0:37 nginx: worker process is shutting down
1131 nobody 0:02 nginx: worker process is shutting down
1132 nobody 0:02 nginx: worker process is shutting down
1215 nobody 0:50 nginx: worker process is shutting down
1216 nobody 0:53 nginx: worker process is shutting down
1515 nobody 0:23 nginx: worker process is shutting down
1516 nobody 0:47 nginx: worker process is shutting down
1533 nobody 0:03 nginx: worker process is shutting down
1534 nobody 0:16 nginx: worker process is shutting down
1598 nobody 0:00 nginx: worker process
1599 nobody 0:00 nginx: worker process
2) And if you now check some listen port on the host using netstat, you will
see it is owned by the worker process:
[root at paas-controller-177-1-1-137:~]$ netstat -anp |grep 10080
tcp 0 0 0.0.0.0:10080 0.0.0.0:* LISTEN
6288/nginx: worker
tcp 0 0 10.47.205.136:10080 10.47.205.137:50827
ESTABLISHED 6296/nginx: worker
tcp 0 0 10.47.205.136:10080 10.47.205.137:50833
ESTABLISHED 6300/nginx: worker
tcp 0 0 10.47.205.136:10080 10.47.205.137:49411
ESTABLISHED 6296/nginx: worker
tcp 0 0 10.47.205.136:10080 10.40.157.154:54074
ESTABLISHED 6296/nginx: worker
tcp 0 0 10.47.205.136:10080 10.47.205.137:49715
ESTABLISHED 6299/nginx: worker
tcp6 0 0 :::10080 :::* LISTEN
6288/nginx: worker
3) So far, you would say it is not a big deal as long as the worker could
serve the request correctly. but it does NOT. suppose the listen port 10080
above would proxy the request to the upstream server A initially (and for
sure this port was listening by the master process), days later, it has been
changed to the server B and of course the Nginx was been reloaded at the
same time (and perhaps some worker was left in " is shutting down" state at
that time). well now, I see this port is listening by a worker process, and
it would proxy the request to the old server A.
I suspected this could be caused by the "shutting down" worker processes, so
I "kill -9" all these ones and try again, but nothing changed. even
reloading the Nginx did no help. I shut it down and rerun the binary,
finally this worked and the request can be proxyed to the server B.
I guess maybe some cache in Nginx was doing the bad, any clue?
Thanks,
Allen
Posted at Nginx Forum: https://forum.nginx.org/read.php?2,283700,283856#msg-283856
More information about the nginx
mailing list