apache - Apache 2.4和PHP-FPM套接字

标签 apache sockets php mod-proxy

在几天之内找不到困扰我的问题的答案:

根据虚拟主机文件中的Apache documentation,我应该这样写:

ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/path/to/socket.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/

但是我是否必须将其他fcgi端口用于其他站点?例如
...socket2.sock|fcgi://127.0.0.1:9001...
...socket3.sock|fcgi://127.0.0.1:9002...

或者
...socket2.sock|fcgi://127.0.0.1:9000...
...socket3.sock|fcgi://127.0.0.1:9000...

它可以双向工作-日志或屏幕上都没有错误。我知道,如果我使用TCP而不是UNIX套接字,那么我应该为每个站点使用不同的端口(如果使用相同的端口,也会抛出错误),但是我不确定我是否理解这种Apache语法。

最佳答案

这完全取决于您如何为php-fpm配置工作池。

例如,在centos 7上,您将在/etc/php-fpm.d/中找到一个www.conf。

通常,这是端口9000的配置。

您可以对所有虚拟主机使用相同的端口,而不会出现任何问题。

但是,如果设计使您想要对不同的虚拟主机使用不同的端口,则只需复制www.conf,对其重命名并编辑文件。

确保在顶部更改池的名称。您会发现默认名称为[www]。您可以将其编辑为[your_preferred_pool_name]

然后,在监听选项中,您可以将端口更改为所需的端口。

重新启动php-fpm后,您将拥有[www]池和[your_preferred_pool_name]池。

要将虚拟主机配置为使用新池,只需通过将端口更新为conf文件中新定义的端口来更新ProxyPassMatch配置。

但是同样,为所有虚拟主机使用相同的池(端口)应该可以正常工作。

关于apache - Apache 2.4和PHP-FPM套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26359446/

相关文章:

php - 通知栏 : Am I going the right way? 的 Node.js 和 socket.io

php - 从页面上的mysql中清除所有显示的记录

php - 我在哪里放置可以显示 Flash 消息的 Laravel 4 辅助函数?

java - 如何使用命令关闭从 Linux 机器创建的 TCP session ?

php - strlen 如何处理数字?

linux - 将 Apache Server 文档根目录重定向到 SpringBoot 应用程序

apache - 安装 SSL 证书后在 CI 中重定向循环

eclipse - 添加 postgresql jar 后 Tomcat 不启动

c - 长度为零的 recv() 有效吗?

php - 访问套接字时如何设置超时时间?