Как изменить файл nginx.conf во время развертывания AWS Elastic Beanstalk
Я разработал Django-приложение и развернул его в среде Elastic Beanstalk (с nginx в качестве прокси-сервера).
 Платформа Linux должна быть первой версии, потому что если я выполню команду: cat /etc/os-release в терминале экземпляра EC2, управляемого EB, я получаю такую информацию:
Кроме того, я дважды подтвердил, что это Linux 1, а не Linux 2, зайдя в консоль EC2:
Теперь, уточнив, какую платформу Linux я использую в экземпляре EC2, перейдем к решению проблемы.
Когда я получаю доступ к экземпляру EC2 и захожу в файл etc/nginx/nginx.conf, я вижу следующее:
 Теперь я хочу увеличить настройки таймаута в разделе "server" файла nginx.conf.
Я также хотел бы увеличить client_max_body_size каким-то образом.
Я прочитал в некоторой документации в Интернете, что я должен создать папку .ebextensions в корне моего проекта Django с некоторыми .config-файлами внутри, а также файл buildspec.yml в корневой папке проекта.
Вот где я разместил свои файлы:
my_project
  |- .ebextensions
  |  |- django.config
  |  |- instances.config
  |  |- nginx.config
  |- buildspec.yml
  |- manage.py
  |...
Вот содержание каждого файла:
django.config:
container_commands:
  01_makemigrations:
    command: "source /var/app/venv/*/bin/activate && python3 manage.py makemigrations --noinput"
    leader_only: true
  02_migrate:
    command: "source /var/app/venv/*/bin/activate && python3 manage.py migrate --noinput"
    leader_only: true
  03_collectstatic:
    command: "source /var/app/venv/*/bin/activate && python3 manage.py collectstatic --noinput"
    leader_only: true
instances.config:
option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: "my_project.wsgi:application" 
  aws:elbv2:listener:443:  
    ListenerEnabled: 'true'  
    Protocol: HTTPS  
    SSLCertificateArns: arn:aws:acm:<region>:<user_id>:certificate/<certificate_id>
  aws:elasticbeanstalk:environment:proxy:staticfiles:  
    /static: staticfiles 
  aws:elbv2:loadbalancer:
    IdleTimeout: 900
nginx.config:
 files:
   "/etc/nginx/conf.d/nginx.custom.conf":
       mode: "644"
       owner: "root"
       group: "root"
       content: |
         client_header_timeout   900;
         client_body_timeout     900;
         send_timeout            900;
         proxy_connect_timeout   900;
         proxy_read_timeout      900;
         proxy_send_timeout      900;
         client_max_body_size    500M;
 container_commands:
   01_restart_nginx:
     command: "sudo service nginx reload"
buildspec.yml:
version: 0.2  
  
phases:  
  install:  
    runtime-versions:  
      python: 3.11  
    commands:  
      - echo Installing dependencies...  
      - pip install -r requirements.txt  
  pre_build:  
    commands:  
      - echo Running migrations...  
      - python manage.py migrate --noinput  
  build:  
    commands:  
      - echo Build completed on `date`  
  
artifacts:  
  files:  
    - '**/*'  
Но после развертывания приложения в среде Elastic Beanstalk я всегда вижу конфигурацию nginx по умолчанию.
Итак, мой вопрос заключается в том, как я могу изменить конфигурацию сервера nginx во время развертывания, чтобы увеличить следующие параметры:
- client_max_body_size 500M;
 - client_header_timeout 900;
 - client_body_timeout 900;
 - send_timeout 900;
 - proxy_connect_timeout 900;
 - proxy_read_timeout 900;
 - proxy_send_timeout 900;
 


