我试图利用socket上传nginx但在日志中收到错误:
connect() to unix:/var/run/user_fpm2.sock failed (2: No such file or directory) while connecting to upstream
我可能会犯这个错误,并寻找一些建议/意见。
这是nginx conf块:
upstream backend {
server unix:/var/run/user_fpm1.sock;
server unix:/var/run/user_fpm2.sock;
server unix:/var/run/user_fpm3.sock;
}
和
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
include fastcgi_params;
}
然后,我在/etc/php/7.0/fpm/pool.d/上有3个PHP池,看起来和下面几乎一样。池之间的唯一区别是_fpm1,_fpm2和_fpm3以匹配上游块。
[user]
listen = /var/run/user_fpm1.sock
listen.owner = user
listen.group = user
listen.mode = 0660
user = user
group = user
pm = ondemand
pm.max_children = 200
pm.process_idle_timeout = 30s
pm.max_requests = 500
request_terminate_timeout = 120s
chdir = /
php_admin_value[session.save_path] = "/home/user/_sessions"
php_admin_value[open_basedir] = "/home/user:/usr/share/pear:/usr/share/php:/tmp:/usr/local/lib/php"
我注意到/ var / run总是只有user_fpm3.sock文件。
我是不是错了?是否可以使这个上游配置工作?欢迎所有的建议和批评。
我在Debian Jessie上使用nginx 1.10.3运行PHP7 - 服务器有6个CPU和12GB RAM。
提前致谢。
更新:我自己想出了答案,但是如果其他人试图做同样的事情,请留下问题,或者进一步优化这一点。
我所要做的就是将我的池名更改为[user_one],[user_two]和[user_three]
答案 0 :(得分:1)
更改每个PHP池的名称解决了问题,如下所示:
[user_one]
[user_two]
[user_three]