Назад | Перейти на главную страницу

Чтение Apache 2.2 из NFS возвращает 404 примерно в течение одной минуты, даже если файл существует

У меня есть дистрибутив CentOS версии 6.6 (Final), на котором запущен экземпляр Varnish (порт 80) и Apache 2.2 (порт 81).

Apache читает файл из NFS.

Проблема, с которой я сталкиваюсь (не всегда, но большую часть времени), заключается в следующем: если я создаю новый файл в NFS и пытаюсь загрузить этот файл непосредственно на порт 81 (в обход 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

Может кто поможет в этом.

Спасибо

NFS кэширует по умолчанию из соображений производительности.

Если вы не хотите ждать ни минуты, вы можете смонтировать общий ресурс без кешей каталогов: acdirmin=0,acdirmax=0

NFS - программное обнаружение удаленно созданных файлов?