У меня проблема с nginx и backend fastcgi. Я пытался увеличить размер невыполненной работы, но, похоже, это не работает. Что я делаю не так? Бэкэнд запускается через systemd.
ОС: 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
Из listen(2)
:
Если аргумент backlog больше, чем значение в / proc / sys / net / core / somaxconn, то он автоматически усекается до этого значения; значение по умолчанию в этом файле - 128. В ядрах до 2.4.25 этим пределом было жестко заданное значение SOMAXCONN со значением 128.
Итак, вам нужно увеличить значение в /proc/sys/net/core/somaxconn
до желаемой длины отставания.
Параметр Backlog был правильным. Проблема заключалась в том, что файл .socket не был включен через systemctl enable x.socket, поэтому systemd только запускал демон, а сам демон создавал сокет, очевидно, не принимая во внимание параметр backlog в файле .socket.