我进入了一个环境,他们使用 NFS 访问存储在与前端 Apache 服务器位于同一网络的服务器上的 PHP 脚本和静态 Web 内容。只有一个前端 Apache 服务器通过 NFS 访问这些文件,因此不存在它们对前端 Apache 框进行负载平衡的情况。
我们正在虚拟化 Apache 和 NFS 服务器。我们对于在这种情况下是否继续使用 NFS 或将所有 Web 内容本地存储在同一台 Web 服务器是否有意义存在分歧。你们觉得呢?
谢谢您的任何意见。
答案1
如果您需要在文件系统级别进行多客户端访问,则仅需要 NFS。由于您不需要多客户端访问,因此我真的不建议将 NFS 作为最佳选择。
即使你做我有多个 Apache 服务器,仍然不建议使用 NFS 作为在机器之间共享代码的手段。自动部署工具可以轻松地将代码几乎同时分发到任意多个位置。NFS可能是用户提供的资产的最佳选择,但这仍然不像最初看起来那么简单(我对此话题的看法可以在另一个答案)。
答案2
我们目前正在运行 nginx 和 Apache,它们通过 NetApp FAS2050 上的 NFS 共享提供数据,没有任何性能问题。NFS 的缺点似乎是对相对较大目录(> 200 个文件)的目录查找速度相当慢,我建议您将 nginx 作为该 Apache 服务器的缓存,以尽量减少对 SAN 的性能影响。
答案3
听起来,在您所描述的情况下,使用 NFS 的好处很少。
您可以从单一来源、多服务器类型的设置中获得最大收益(尽管还有其他方法可以解决此问题)。对于静态页面,尤其是如果其中有缓存,性能不应该是一个大问题。当许多机器都运行 PHP 脚本时,您可能会遇到性能影响。不过,这取决于您的环境。
不过,为了让您了解它的好处:我们有一个 Netapp 文件管理器,我们将卷作为 CIFS 双重呈现给 Windows 客户端(营销人员),并将 NFS 双重呈现给 Apache 服务器,这些服务器在 4 台服务器上实现负载平衡。我们将所有 Apache 服务器都安装为只读,营销人员可以直接从 Dreamweaver 或其他他们使用的软件进行所需的修改,然后直接保存到 Windows 共享。
我应该说一下,这种设置仅用于一次性营销活动。我们的主站点使用 CMS 进行妥善管理,并遵循适当的工作流程。
答案4
在某些情况下使用 NFS 可能是有意义的。一种情况是,如果您的本地磁盘子系统的性能不是最佳的,但您的 NFS 存储在高性能磁盘阵列上。在所有其他情况下,您只是将网络添加为故障点而没有任何好处。