How to set unix socket backlog with systemd?
I've got a problem with nginx and a fastcgi backend. I've tried to increase the backlog size but it doesn't appear to be working. What am I doing wrong? The backend is started via systemd.
OS: 16.04.2 LTS (Xenial Xerus)
# /etc/systemd/system/backend.socket
[Socket]
Backlog=1000
ListenStream=/tmp/backend.socket
# ss -l|grep back
u_str LISTEN 0 128 /tmp/backend.socket 21641 * 0
# nginx log
2017/06/21 09:40:56 [error] 1565#1565: *33729 connect() to unix:/tmp/backend.socket failed (11: Resource temporarily unavailable) while connecting to upstream, upstream: "fastcgi://unix:/tmp/backend.socket:"
$ cat /proc/sys/net/core/somaxconn
1024
From listen(2)
:
If the backlog argument is greater than the value in /proc/sys/net/core/somaxconn, then it is silently truncated to that value; the default value in this file is 128. In kernels before 2.4.25, this limit was a hard coded value, SOMAXCONN, with the value 128.
So, you need to bump the value in /proc/sys/net/core/somaxconn
to your desired backlog length.