【发布时间】:2017-07-15 14:09:49
【问题描述】:
我正在尝试使用套接字利用 nginx 上游,但在我的日志中收到错误:
connect() to unix:/var/run/user_fpm2.sock failed (2: No such file or directory) while connecting to upstream
我可能会解决这个问题并寻求一些建议/意见。
这是 nginx 配置块:
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]
【问题讨论】:
-
您好,您应该创建一个答案,然后自己接受。这样,您的帖子将被标记为“已回答”,并且会更有帮助。 :)