LINUX.ORG.RU
решено ФорумAdmin

Apache отдаёт не все файлы

 ,


0

1

Есть Debian GNU/Linux 11. На нём есть apache2 2.4.54-1~deb11u1

Не отдаёт некоторые файлы. Причём только браузеру. Через GET в командной строке отдаёт.

И отдаёт или нет зависит от содержимого файла. Копирую файл (html), который не отдаёт, копию тоже не отдаёт. В копии удаляю хвост файла начинает отдавать. Дописываю в конец «aaa», перестаёт отдавать. Удаляю последнюю «a», отдаёт. Меняю в конце «aa» на «ab», перестаёт отдавать.

У кого-то есть идеи?

★★★★★

Последнее исправление: monk (всего исправлений: 1)

Починилось. Оказывается торрент много соединений насоздавал и это как-то мешало.

Осталось загадкой, почему зависело от содержимого файла, но ошибка больше не воспроизводится.

monk ★★★★★
() автор топика
Ответ на: комментарий от r0ck3r

Тоже вряд ли. Сначала файл был скопирован (не отдавался), потом от него отрезан хвост (начал отдаваться), потом эксперименты сколько нужно отрезать, потом дописано «aaa» (перестал отдаваться), потом удаление одной буквы (начал отдаваться), потом эксперименты над последней буквой.

Сейчас думаю, может apache на лету gzip делает? В заголовках браузера «Accept-Encoding: gzip, deflate». И может из-за торрента apache не мог память больше страницы получить…

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Рискну предположить, что либо у вас на сервере или клиенте битая оперативка, либо где-то на роутере, по пути следования пакета.

Также могут быть проблемы с аппаратным ускорением NAT на дешёвых домашних роутерах.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

Рискну предположить, что либо у вас на сервере или клиенте битая оперативка, либо где-то на роутере, по пути следования пакета.

Клиенты были разные. На сервере или роутере может. Но тогда ведь ошибка должна быть случайной, на худой конец зависящей от размера, а не от того, последняя буква файла «a» или «b». Причём от последней буквы зависит, будет ли получена первая…

monk ★★★★★
() автор топика
Ответ на: комментарий от monk

Сложно сказать наверняка, нужно исследовать. Если память битая в роутере, то уменьшение нагрузки могло снизить температуру. Часто, для переворачивания бита нужна определённая последовательность битов до или после.

Я трижды сталкивался с флипом бита/ов в реальной жизни. Один раз на домашнем маршрутизаторе (не проходили некоторые пакеты), один раз — на роутере в интернете (на сервер приходил пакет с одним изменённым битом, пакет не принимался из-за несовпадения контрольной суммы, решилось поиском маршрутизатора, связью с владельцем и последующей заменой), причём бились только UDP-пакеты определённого содержания.

Вот пару примеров из интернета:

https://forum.ixbt.com/topic.cgi?id=14:59307:3781#3781 < бьётся один определённый файл при передаче через домашний маршрутизатор
https://news.ycombinator.com/item?id=25335936 < Люди 2 недели пытались объяснить провайдеру AT&T, что их роутер переворачивает биты
https://web.archive.org/web/20220403060108/https://status.aws.amazon.com/s3-20080720.html < bit flip в Amazon S3

ValdikSS ★★★★★
()