X

Как отключить AccessLog в Apache2

Сегодня делал бэкап и заметил что один из файлов логов, а именно other_vhosts_access.log был больше 2 ГБ. Так как список тех кто там ломиться ко мне на сайт мне не особо интересно (не стоят анализаторы логов, есть внешняя статистика), то я решил отключить этот лог отключить.

Сделал я это таким способом:

  • Зашел сюда: /etc/apache2/sites-enabled/* тут хранятся конфигурации для сайтов
  • В каждую конфигурацию прописал (предварительно закомментировал оригинальную запись) CustomLog:
    CustomLog /dev/null combined
  • Перезагрузил Apache
    sudo /etc/init.d/apache2 restart
  • Нашел старые логи тут: /var/log/apache2/*
  • Удалил архивы: *.gz
  • Обнулил логи:
    sudo cp /dev/null access.log
    sudo cp /dev/null error.log
    sudo cp /dev/null other_vhosts_access.log
  • Проверил что они не пишутся

Вот и всё, это помогло.

Есть мнение, что не очень хорошо перенаправлять вывод в /dev/null, но этот способ довольно часто рекомендуется в том случае, когда для одной части сайтов логи нужны, а для других нет. В моем случае, возможно понадобиться анализ логов, поэтому мне подходит именно этот метод.

Если Вам нужно будет везде отрубить логи для каких либо оптимизаций, то попробуйте найти все места где включается CustomLog:

  • конфигурации VirtualHost в /etc/apache2/sites-available/*
  • подключаемые логи в /etc/apache2/conf.d/*
  • конфиг апача /etc/apache2/apache2.conf
  • конфиг апача /etc/apache2/httpd.conf

и просто закомментировать эту строку, я думаю это так же должно отрубить ведение этого журнала (если этот, второй способ, для вас сработает, дайте знать в комментариях).

Для отключения лога ошибок, используйте те же самые способы, но вместо CustomLog, конфигурируйте ErrorLog.

Категории: Apache