即使文件存在,Apache 2.2 从 NFS 读取也会返回 404 约一分钟

即使文件存在,Apache 2.2 从 NFS 读取也会返回 404 约一分钟

我有一个 CentOS 6.6(最终版)发行版,其上运行着 Varnish 实例(端口 80)和 Apache 2.2(端口 81)。

Apache 从 NFS 读取文件。

我面临的问题(并非总是,但大多数时候)如下:如果在 NFS 上创建一个新文件,并且我尝试直接在端口 81 上通过 wget 该文件(绕过 Varnish),Apache 会给出 404。

--2018-08-03 16:11:28--  http://www.example.com:81/test/lorem-ipsum-2/index.html
 Resolving www.example.com... ::1, 127.0.0.1, 10.xxx.xxx.xxx
 Connecting to www.example.com|::1|:81... connected.
 HTTP request sent, awaiting response... 404 Not Found
 2018-08-03 16:11:29 ERROR 404: Not Found.

大约一分钟后它才能返回文件内容 200。

wget "http://www.example.com:81/test/lorem-ipsum-2/index.html"
--2018-08-03 16:12:40--  http://www.example.com:81/test/lorem-ipsum-2/index.html
Resolving www.example.com... ::1, 127.0.0.1, 10.xxx.xxx.xxx
Connecting to www.example.com|::1|:81... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4524 (4.4K) [application/json]
Saving to: “index.html”

100%[===================================================================================================================================================================================================>] 4,524       --.-K/s   in 0s

2018-08-03 16:12:40 (122 MB/s) - “index.html” saved [4524/4524]

此外,还有一点可能很重要,如果我在一分钟之内对该文件执行 cat 操作,Apache 将能够返回 200 OK。

cat /data/nfs_shared/httpd/htdocs/test/lorem-ipsum-2/index.html

也许有人可以帮忙。

谢谢

答案1

出于性能原因,NFS 默认使用缓存。

如果您不想等待,您可以挂载没有目录缓存的共享: acdirmin=0,acdirmax=0

NFS-以编程方式检测远程创建的文件?

相关内容