CyraxZ
06-08-2017, 22:35
В продолжение вот этой (http://forum.oszone.net/showthread.php?t=328349) темы:
1) Есть хост-машина Windows 10 с общей папкой share. Windows-пользователю user предоставлены полные права на эту папку
2) На гостевой машине Debian, развёрнутой с помощью Virtual Box, установлен веб-сервер nginx + php-fpm и пакет утилит Samba
3) В гостевой системе выполняется монтирование папки share, обеспечивающей доступ к сетевой Windows-папке share (расположенной на хост-машине)
В процессе работы сайта на гостевой машине очень часто наблюдается следующий артефакт:
Веб-сервер на гостевой машине: при отображении страниц сайта веб-сервер не может прочитать файлы (например, файлы стилей или скриптов) и генерирует в логах ошибки:
*66 pread() read only 13424 of 13478 from "/home/user/www/site.ru/.../... .css" while sending response to client...
Браузер на хост-машине: генерирует ошибку "НЕ удалось загрузить таблицу стилей: ... .css" либо (чаще) получает пустую таблицу стилей (пустую таблицу стилей видно в браузере в режиме отладки на вкладке "Стили")
Проблема "решается" перезагрузкой веб-сервера (nginx) на гостевой машине
Т.е. делаем вывод: веб-сервер (nginx) в процессе чтения файлов блокирует эти файлы и после завершения чтения разблокировку не выполняет.
В настройках веб-сервера опция [sendfile] отключена. Не помогает (дело не в ней)
Возможно, дело в низкоуровневых механизмах работы операционной системы гостевой машины (Debian)
Для решения проблемы необходимо:
1. (гостевая машина) Либо заставить веб-сервер (nginx) или ОС (Debian) НЕ блокировать сетевые файлы при чтении
2. (хост-машина) Либо настроить хост-машину (Windows 10) так, чтобы она не позволяла блокировать свои файлы при сетевом smb-доступе (из гостевой машины)
Кто что посоветует ?
Сейчаc перед каждой загрузкой страницы сайта приходится перезагружать веб-сервер nginx на гостевой машине
1) Есть хост-машина Windows 10 с общей папкой share. Windows-пользователю user предоставлены полные права на эту папку
2) На гостевой машине Debian, развёрнутой с помощью Virtual Box, установлен веб-сервер nginx + php-fpm и пакет утилит Samba
3) В гостевой системе выполняется монтирование папки share, обеспечивающей доступ к сетевой Windows-папке share (расположенной на хост-машине)
В процессе работы сайта на гостевой машине очень часто наблюдается следующий артефакт:
Веб-сервер на гостевой машине: при отображении страниц сайта веб-сервер не может прочитать файлы (например, файлы стилей или скриптов) и генерирует в логах ошибки:
*66 pread() read only 13424 of 13478 from "/home/user/www/site.ru/.../... .css" while sending response to client...
Браузер на хост-машине: генерирует ошибку "НЕ удалось загрузить таблицу стилей: ... .css" либо (чаще) получает пустую таблицу стилей (пустую таблицу стилей видно в браузере в режиме отладки на вкладке "Стили")
Проблема "решается" перезагрузкой веб-сервера (nginx) на гостевой машине
Т.е. делаем вывод: веб-сервер (nginx) в процессе чтения файлов блокирует эти файлы и после завершения чтения разблокировку не выполняет.
В настройках веб-сервера опция [sendfile] отключена. Не помогает (дело не в ней)
Возможно, дело в низкоуровневых механизмах работы операционной системы гостевой машины (Debian)
Для решения проблемы необходимо:
1. (гостевая машина) Либо заставить веб-сервер (nginx) или ОС (Debian) НЕ блокировать сетевые файлы при чтении
2. (хост-машина) Либо настроить хост-машину (Windows 10) так, чтобы она не позволяла блокировать свои файлы при сетевом smb-доступе (из гостевой машины)
Кто что посоветует ?
Сейчаc перед каждой загрузкой страницы сайта приходится перезагружать веб-сервер nginx на гостевой машине