nginx + php-fpm
centos xxx
docker xxx
前提是php-fpm 走的是socket,tcp不用有这问题
切入docker 用ab 压测300 发现有失败的请求nginx erro:
2020/06/17 17:49:11 [error] 23#0: *14896 connect() to unix:/dev/shm/php-cgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream,
client: 172.17.0.1, server: _, request: "GET / HTTP/1.0", upstream: "fastcgi://unix:/dev/shm/php-cgi.sock:", host: "127.0.0.1:9999"
查看:cat /proc/sys/net/core/somaxconn
找了一堆文档没找到与docker有关的Resource temporarily unavailable
1、docker run --sysctl net.core.somaxconn=32768 nginx-php-fpm
2、php-fpm listen.backlog =-1 或者 32768
##-1表示 用系统的 值 ,
操作系统默认是128
docker默认也是128
如果docker 用的net 是host 不需要设置,是直接走的宿主机的。
net.core.somaxconn是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。backlog是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。
https://docs.docker.com/engine/reference/commandline/run/
docker 部署 php-fpm nginx 502 (Resource temporarily unavailable)
原文:https://www.cnblogs.com/Qing-840/p/13163082.html