我有一个nginx和一个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的值/proc/sys/net/core/somaxconn到你想要的backlog长度。
Backlog参数是正确的。 问题是,.socket文件没有通过systemctl enable x.socket启用,所以systemd只启动守护进程,守护进程本身创build套接字,显然没有考虑.socket文件中的backlog参数。