Я использую Apache/2.4.38 (Raspbian). При запросе HTML и PHP все работает нормально. Когда я запрашиваю файл.jpg, apache, кажется, пропускает несколько байтов в начале заголовка ответа, а в конце полезной нагрузки включается какой-то мусор.
В частности, после GET /images/2.jpg HTTP/1.1
ответ выглядит как:
21 19:00:13 GMT
ETag: "23fa-5cf6e52077278"
Accept-Ranges: bytes
Content-Length: 9210
Keep-Alive: timeout=5, max=97
Connection: Keep-Alive
Content-Type: image/jpeg
Предыдущие ответы в рамках того же сеанса выглядели правильно, как:
HTTP/1.1 200 OK
Date: Mon, 01 Nov 2021 19:08:49 GMT
Server: Apache/2.4.38 (Raspbian)
...
Это происходит только для изображений JPEG. Сам файл изображения в порядке, я могу просмотреть его с помощью gwenview. Один и тот же ошибочный ответ отправляется независимо от того, пытаюсь ли я использовать chrome, wget или даже вручную с помощью netcat. Всегда один и тот же ошибочный ответ.
Как это может произойти и как это исправить?
Я нашел ответ после поиска по запросу «apache jpeg cifs share». Это известная ошибка, из-за которой мой mmap не работал с файлами в общем ресурсе CIFS. Решение состоит в том, чтобы установить EnableMMAP off
в конфигурации apache для всех папок на общих ресурсах CIFS.