我正在研究一种“无状态服务器”的新设置,该服务器应用作 Apache/Php 节点来通过互联网传递内容。
我的目标是将 DocumentRoot 和 ServerRoot 移动到 NFS(它将是 EFS - Aws 上的弹性文件系统),这样我就会有一个可以存储所有数据和配置文件的单一网络位置。
操作系统是 Debian Stretch。
在阅读 Debian 开箱即用的 apache 主配置文件时,我发现了以下注释:
注意!如果您打算将其放置在 NFS(或其他网络)挂载的文件系统上,请阅读 Mutex 文档(可在 http://httpd.apache.org/docs/2.4/mod/core.html#mutex> 上找到);这样可以省去很多麻烦。
由于我没有找到太多有关移动 Apache ServerRoot 的文档,因此我有一些疑问:
- 即使对于单个服务器访问是否真的需要互斥锁定?
- 设置互斥锁定后,我可以同时从多个服务器访问 NFS 文件吗?
- 我应该选择哪种“机制”?
- 还有什么我应该注意的吗?
答案1
单台服务器不需要互斥锁定,因为它基本上是为了防止写入冲突,但如果您要扩展并可能从多台服务器将任何文件写入共享文件系统,请考虑使用它。file://
对于大多数用途,请使用 apr 默认值或。
答案2
如果您进一步阅读您引用的 URL,您会发现互斥功能用于许多事情,包括 SSL、某些 MPM、身份验证等......它与写操作无关。
您应该使用非 NFS 上的本地目录,或者甚至是tmpfs
,因为这无论如何都无法阻止 Apache 重启。否则请使用信号量类型,例如sem