![多个 Web 服务器使用仅存储在一台服务器上的 PHP 文件吗?](https://linux22.com/image/665924/%E5%A4%9A%E4%B8%AA%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8%E4%BB%85%E5%AD%98%E5%82%A8%E5%9C%A8%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%20PHP%20%E6%96%87%E4%BB%B6%E5%90%97%EF%BC%9F.png)
是否有可能让由负载平衡器平衡的多个 Web 服务器节点使用存储在本地网络其他地方的 PHP 文件?目前,我有两个节点,静态内容(上传、文件缓存)通过 SSHFS 共享。但是,维护此设置很麻烦,因为应用程序在两台服务器上都本地存在。如果我设想另一台服务器或决定我需要平衡另一个应用程序,那么在管理这些应用程序文件时,我的工作量就会增加 n+1。
我找不到有关此问题的任何资源。有没有办法将 .php 应用程序文件存储在服务器 Z 上,而服务器 X 和 Y 使用自己的硬件运行它们?
答案1
在我们的案例中,我们有 2 个(或更多)Web 服务器,每个服务器都有我们的应用程序副本(我们使用 GitHub 标记,并通过 DevOps 指示服务器提取标记)。这样,每个服务器都有相同的代码库。如果我需要一台新服务器,DevOps 会启动一个新实例,对其进行配置并提取代码副本。添加到负载平衡器即可。
我们有一个单独的实例运行我们的数据库,我们的 DevOps 服务器通过 NFS 托管共享。PHP 会话存储在数据库中,然后加载到 DevOps 服务器上的 memcached 中。
根据您的情况,您可以设置 NFS 共享,并让其他服务器使用该共享来托管文件。虽然效率较低,但可行。