У меня есть приложение Django, работающее на aws-elastic-beanstalk. Я пытаюсь отключить журналы, вызванные проверками состояния. Проверки работоспособности уже направлены на отдельную страницу.
Elastic-beanstalk использует Apache + mod_wsgi.
Вот решение который работает с серверами nginx. Я пытаюсь создать что-то подобное для apache.
я узнал что условные журналы вероятно, подходящий способ сделать это с сервером Apache.
Структура моего каталога выглядит следующим образом
/etc/httpd/
- conf
- httpd.conf # main conf
- conf.d
- wsgi.conf # virtual hosts
- additional config files
моя попытка:
files:
"/etc/httpd/conf.d/disable_health_logs.conf":
mode: "000644"
owner: root
group: root
content: |
<IfModule mod_setenvif>
SetEnvIf Request_URI "^/health/$" dontlog
CustomLog logs/access_log combined env=!dontlog
</IfModule>
Дополнительная конфигурация disable_health_logs.conf
создается, но не действует. Я не вижу журналов ошибок и изменений в журналах доступа.
в httpd.conf
уже есть следующая настройка:
CustomLog "logs/access_log" combined
Мне нужно отменить это?
Я предполагаю, что вы загружаете модуль где-то со следующим
LoadModule setenvif_module <your_apache_modules_path>/mod_setenvif.so
Кроме того, необходимо исправить ваш IfModule, как показано ниже (примечание: .c в конце)
<IfModule mod_setenvif.c>
SetEnvIf Request_URI "^/health/$" dontlog
CustomLog logs/access_log combined env=!dontlog
</IfModule>
В остальном то, что у вас есть, выглядит правильно.
Так что у меня было еще одно дело.
Проблема действительно в настройке в httpd.conf
. Если я закомментировал строку:
#CustomLog "logs/access_log" combined
вручную через ssh используются мои настройки, а проверки работоспособности исчезают из журналов.
Обратите внимание, что это не совсем постоянное решение, поскольку beanstalk может запустить новый экземпляр и снова переопределить httpd.conf