I have a very low traffic site running on nginx, with 4 workers, 1024 connections each.
Every several hours I start seeing in the error log "1024 worker_connections are not enough", and my site slows down / becomes flakey. A nginx restart solves the problem entirely for the next several hours.
Clearly something odd is happening, there is no way I'm serving 4k concurrent users of my application.
Other than looking at the access log (which looks normal), is there a way to observe with greater details what nginx is doing?
Is there some notorious configuration combination that might result in old connections being held open and not closed?
Thanks.
edit this looks not right
# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
Without proxy pass / reverse proxy
With reverse proxy
2 is because you open a connection to what you are proxying
X is however many concurrent connections these clients make to you
To see which connections are hanging around you could run
lsof -i :PORT
. It will show all connections open to nginx, and their state.