apache2 отправляет поврежденные ответы при использовании cifs-share

У меня проблема с экземпляром ubuntu (Ubuntu 20.04.1 LTS) и apache2 (Apache / 2.4.41 (Ubuntu)). Один виртуальный хост обслуживает некоторые html-файлы и документы из смонтированного общего ресурса cifs. Cifs-share работает нормально, файлы в файловой системе верны.

Однако apache не может генерировать правильные ответы для каждого типа файла, который обслуживается в двоичном формате (например, изображения, текстовые документы, PDF-файлы и т. Д.). Например, когда я загружаю изображение image.gif , файл загружается и сохраняется на клиенте. При открытии файла в текстовом редакторе на клиенте это выглядит следующим образом:

grade, Keep-Alive
Last-Modified: Thu, 12 Nov 2020 10:01:47 GMT
ETag: "b6b-5b3e600040144"
Accept-Ranges: bytes
Content-Length: 2923
Keep-Alive: timeout=5, max=100
Content-Type: image/gif

GIF89av[binary-string starting...]

Итак, часть заголовков ответов теперь находится в загруженном файле, чего никогда не должно происходить. Я ожидаю, что загруженный файл будет начинаться с GIF89av и так далее. Обслуживание текстовых файлов (например, html) не является проблемой и работает должным образом. Однако, когда я копирую тот же файл в корень документа другого виртуального хоста на том же сервере, который не использует смонтированный cifs-share, файл обслуживается правильно (без заголовков ответов в нем). Итак, я предполагаю, что в этой комбинации смонтированных cifs-share и apache2 есть некоторая проблема, которая приводит к этой ошибке.

Я уже пробовал различные варианты монтирования общего ресурса - но, на мой взгляд, это правильно, поскольку файлы работают непосредственно в файловой системе без apache.

Общий ресурс смонтирован в / etc / fstab , как описано в

//192.168.0.1/share$ /mnt/share cifs username=user,password=pass,dom=contoso.local 0 0

, что в значительной степени является самым простым способом сделать это. Я испытал такие параметры, как iocharset = utf8 , пробовал разные версии ( vers = 1.0 или vers = 3.1 ), но это ничего не изменило. Конфигурация apache также является базовой, поставляется с ubunutu 20, ничего особенного там не добавлено и не изменилось. Я немного столкнулся с mime-типами, но apache должен иметь возможность обслуживать изображение из коробки.

Кроме того, я запустил php-webserver ( php -S 192.168.0.2:8000) для тестирования в этом каталоге, который возвращает правильные двоичные файлы, что дает мне уверенность, что ошибка где-то в апач.

Что приводит к повреждению ответов Apache и как это исправить?

0
задан 2 December 2020 в 19:49
1 ответ

У меня такая же проблема, похоже, эта проблема возникла недавно, возможно, она связана с версией ядра 20.04? Я также вижу проблему с обычными текстовыми файлами. Удалось ли вам найти решение/обходной путь? (Извините, у меня нет представителя, чтобы оставить комментарий)

Изменить: Я смог найти отчет об ошибке здесь: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900821 У меня сработало отключение EnableMMAP в конфигурации apache:

EnableMMAP off
0
ответ дан 22 December 2020 в 16:03

Теги

Похожие вопросы