Я запускаю приложение Rails с Apache 2.4.10 и mod_passenger
. Сайт использует исключительно https. Я вижу эти сообщения в своем журнале ошибок:
[Wed May 31 19:05:37.528070 2017] [reqtimeout:info] [pid 11111] [client 10.100.23.2:57286] AH01382: Request header read timeout
[Wed May 31 19:05:37.530672 2017] [reqtimeout:info] [pid 11229] [client 10.100.23.2:57288] AH01382: Request header read timeout
[Wed May 31 19:05:37.890259 2017] [reqtimeout:info] [pid 10860] [client 10.100.23.2:57271] AH01382: Request header read timeout
[Wed May 31 19:05:37.890383 2017] [reqtimeout:info] [pid 10859] [client 10.100.23.2:57272] AH01382: Request header read timeout
[Wed May 31 19:05:37.890459 2017] [reqtimeout:info] [pid 10862] [client 10.100.23.2:57285] AH01382: Request header read timeout
[Wed May 31 19:05:37.947942 2017] [reqtimeout:info] [pid 10863] [client 10.100.23.2:57287] AH01382: Request header read timeout
Эти сообщения появляются в журнале ошибок примерно через две-три секунды после окончания загрузки моей страницы. Однако полная загрузка страницы занимает всего несколько секунд. Я использую mod_reqtimeout
с этой настройкой:
RequestReadTimeout header=20-40,minrate=500
Поскольку загрузка страницы занимает всего несколько секунд, я не понимаю, почему Request header read timeout
сообщения записываются в журнал ошибок.
Почему появляются эти сообщения и что я могу сделать, чтобы это исправить?
Вы уверены, что используете "10.100.23.2"?
reqtimeout, как вы, возможно, уже знаете, предназначен для предотвращения атак Slow Loris, то есть запросов, которые оставляют соединение открытым без отправки каких-либо реальных данных.
В этом случае эти соединения не отправляют заголовки через 20 секунд, поэтому Apache закрывает их.
Это вполне может быть ваш любимый браузер, отправляющий gazillions подключений для захвата контента и использующий только несколько, попробуйте какой-нибудь более простой клиентский браузер, такой как "curl", используйте другой браузер и т. Д.