Назад | Перейти на главную страницу

Как узнать, к чему осуществляется доступ в журналах Apache

Я управляю выделенным сервером с сотнями веб-сайтов, на которых есть главный журнал для Apache.

На сервере наблюдаются скачки загрузки ЦП Apache каждые 4 или 5 часов, и после обзора я обнаружил в Apache access_logs такие строки:

128.223.8.111 - [15/Jul/2015:02:36:09 +0100] "HEAD / HTTP/1.1" 159855ms 400 - "-" "-"
160.36.57.172 - [15/Jul/2015:02:57:21 +0100] "HEAD / HTTP/1.1" 105350ms 400 - "-" "-"
142.103.2.2 - [15/Jul/2015:03:45:29 +0100] "HEAD / HTTP/1.1" 130384ms 400 - "-" "-"

Которые соответствуют этим в error_logs

[Wed Jul 15 02:36:09 2015] [error] [client 128.223.8.111] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /
[Wed Jul 15 02:57:21 2015] [error] [client 160.36.57.172] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /
[Wed Jul 15 03:45:29 2015] [error] [client 142.103.2.2] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /

Теперь я хочу выследить их и узнать, как они происходят. Из журнала ошибок я понимаю, что кто-то пытается получить доступ к серверу, не выбирая имя хоста, однако я не понимаю, как это возможно.

В той же строке 105 ~ 159 секунд - это много, но я не уверен, что они представляют, потому что он не обращается ни к одному файлу php, поэтому это не время выполнения, так как я могу его ограничить.

Мы будем благодарны за любые советы о том, как найти причину.

Это просто, кто-то обращается http://ip.add.re.ss. Это возвращает страницу без имени хоста.

Вы можете сделать в Apache виртуальный хост по умолчанию, который возвращает посетителю 404, чтобы минимизировать эффект от этих запросов.