У меня та же проблема, что и в этом вопросе: Как не регистрировать параметр запроса get в журналах доступа nginx?
Однако, поскольку nginx настраивается через AWS, я не знаю, как изменить это при развертывании. Мне непонятно, куда идут эти конфигурации. Поддержка AWS не может помочь, так как это проблема с nginx, а не с AWS.
Любая информация, чтобы указать мне в правильном направлении, будет оценена по достоинству.
Пока все, что у меня есть, это то, что я могу изменить ./ebextensions/nginx.config
в моем репозитории, который я развертываю в EB, но что нужно установить в нем, не ясно.
=================================
Итак, несколько забавных обновлений. По сути, среды AWS EB настроены с nginx.configs по умолчанию для своих экземпляров. В этих конфигурациях он включает все файлы *.config по определенному пути, включая один автоматически сгенерированный файл, который содержит директиву сервера. Все это вставляется в директиву http файла nginx.config.
Вы делаете возможность полностью переопределить конфигурацию nginx. Но, будучи человеком, который чертовски почти ничего не знает о том, что там происходит, и о потенциальных опасностях, связанных с этим, я решил, что было бы лучше не изменять поведение по умолчанию, насколько это возможно. Поэтому я решил найти способ изменить этот автоматически сгенерированный файл .config и перезапустить nginx.
Пока что у меня есть это для моего ./ebextensions/01_proxy.config
:
files:
"/etc/nginx/conf.d/injectObfuscation.sh":
content: |
# This script expects a file as input with an nginx server directive to be injected into the http directive of an nginx.config file.
# It will make two modifications:
# - It will create a log_format to be used when filtering the password parameter
# - It will find the server directive and inject a location directive for the sensitive endpoint
# - This directive will replace the sensitive parameter with *s and use the filter log_format instead of the main log_format
# TODO: Figure out how to do the above ^^
container_commands:
01_update_server_directive:
command: "./etc/nginx/conf.d/injectObfuscation.sh /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf"
02_reload_nginx:
command: "sudo service nginx reload"
Строка files:
объявляет, что я создаю несколько файлов для добавления в экземпляр EC2. Здесь моя цель — создать сценарий bash для выполнения моей задачи. Мои задачи, как указано в комментариях, состоят в том, чтобы сначала добавить строку с log_format. Затем найдите строку с server{
, а под ней мне нужно ввести директиву locations /my/sensitive/endpoint
целиком.
Любая помощь в написании этого скрипта bash, с которым я совершенно не знаком, была бы очень признательна.