用于SAME用户的多个PHP池 - Debian上的Nginx上游

时间:2017-07-15 14:09:49

标签: php nginx debian

我试图利用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]

1 个答案:

答案 0 :(得分:1)

更改每个PHP池的名称解决了问题,如下所示:

[user_one]

[user_two]

[user_three]