找不到几天困扰我的问题的答案:
根据虚拟主机文件中的Apache documentation,我应该写一下:
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/path/to/socket.sock|fcgi://127.0.0.1:9000/path/to/your/documentroot/
但我是否必须为其他网站使用另一个fcgi端口? e.g。
...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语法。
答案 0 :(得分:0)
这完全取决于您如何为php-fpm配置工作池。
例如,在centos 7上,您将在/etc/php-fpm.d /
中找到www.conf这通常是端口9000的配置。
您可以毫无问题地为所有虚拟主机使用相同的端口。
但是如果按照设计你想为不同的虚拟主机使用不同的端口,你可以复制www.conf,重命名它并编辑文件。
确保更改顶部的池名称。您将找到默认名称[www]。您可以将其编辑为[your_preferred_pool_name]
然后在listen选项中,您可以将端口更改为您想要的端口。
重新启动php-fpm后,您将拥有[www]池和[your_preferred_pool_name]池。
要配置虚拟主机以使用新池,只需通过将端口更新到conf文件中新定义的端口来更新ProxyPassMatch配置。
但是,对所有虚拟主机使用相同的池(端口)应该没有任何问题。