独立/单独的服务器作为其他节点的 PHP 处理器

独立/单独的服务器作为其他节点的 PHP 处理器

从我在各种文档和示例配置中看到的情况来看,您可以在不同的服务器/硬件上设置 PHP-FPM,与您的 Web 服务器(在我的情况下是 nginx)分开。

尽管大多数例子都列出了这样的一些变化:

location ~ \.php {
    [various parameters]
    fastcgi_pass 127.0.0.1:9000;
}

您可以让 fastcgi_pass 重定向到任何 IP 地址(安全的是 192.168.1.10,或者 200.55.35.40,任意选择!),从而将 PHP 处理委托给不同的服务器。

我的问题是:这些单独的服务器必须在其文件系统中访问 PHP 文件,对吗?如果是,我该如何配置 PHP 查找文件的根目录,因为这通常是在 nginx 的配置中完成的(就我而言)。是通过池配置中的 chroot 和 chdir 参数还是我从 nginx 发送的 SCRIPT_FILENAME?

现在最有趣的部分(对我来说):如果不需要在该服务器上保存文件(并且 nginx 将文件提供给 fastcgi_pass 中的 ip:port),那么包含如何工作?

我只是想设置一堆 PHP-FPM 服务器并让它们承担 Wordpress Multisite 节点的处理负载,而不必来回 rsync 大量内容。

答案1

这些文件也需要存在于 PHP 后端服务器上,并且它们必须位于与 Web 服务器本身完全相同的路径中。PHP 不知道如何转换脚本文件路径,因此它使用从前端服务器传递的路径。

答案2

最简单的方法是将所有文件放在共享存储(即 NFS 挂载)中,然后将其挂载到所有服务器上的同一挂载点。这样,您就不需要执行任何类型的 rsync 或其他复制。

相关内容