我有 2 个通过 NFS 共享文件的 Web 服务器。当我们将 php 代码更新为新版本时,我们的更新脚本会移动现有目录并将新版本复制到其位置。我们直接在 NFS 服务器上进行更改。
每次我们这样做,web1 就会停止工作。它给出 HTTP 500 错误,并且 PHP 日志显示它无法包含 fileX.php。但是,如果我在命令行中手动转到目录,我可以看到该文件及其更新版本。
为了修复它,我需要重新挂载 NFS 目录并重新启动 apache。知道为什么会发生这种情况吗?它只发生在 web1 上,而不是 web2 上,它们都具有相同的配置。而且,就像我说的,我可以在命令行中看到 web1 上的文件,只有 apache 看不到它们。
以下是挂载选项(/proc/mounts):
192.168.1.1:/var/exports/www/ /var/www nfs rw,sync,noatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=65535,timeo=600,retrans=2,sec=sys,local_lock=none,addr=192.168.1.1 0 0
谢谢。
答案1
在 apache 上执行 strace。
如果只有两台服务器。为什么要使用 NFS。看看 DRBD(主动/主动)。我用过它,效果非常好(你需要 OCFS2)。
高血压