Elasti c Beanstalk: `.ebextensions` не выполняется - PullRequest
0 голосов
/ 11 апреля 2020

Я развертываю приложение PHP в Beanstalk, и все выглядит нормально, однако мои файлы конфигурации .ebextensions не работают.

У меня есть только один файл конфигурации, который должен создать файл, а затем перезагрузить nginx.
/my-project/.ebextensions/nginx.config:

files:
  "/etc/nginx/conf.d/elasticbeanstalk/extend-nginx.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      add_header X-Frame-Options "SAMEORIGIN";
      add_header X-XSS-Protection "1; mode=block";
      add_header X-Content-Type-Options "nosniff";

      location / {
          try_files $uri $uri/ /index.php?$query_string;
      }

container_commands:
    reload_nginx:
        command: "sudo service nginx reload"

Моя архитектура в настоящее время:
1. CodePipeline подключен к GitHub, который развертывает приложение на CodeDeploy при каждом обновлении мастера.
2. CodeDeploy получает развертывание от CodePipeline.
3. CodeDeploy устанавливает его в экземпляр Elasti c Beanstalk.

Все вышеперечисленные шаги работают нормально. Я просто не понимаю, почему файл конфигурации в .ebextensions не создает файл, как ожидалось.

Примечание. Я подтвердил, что папка .ebextensions находится в root ревизии .zip, загрузив вручную одну из ревизий и проверив.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Могу ли я отослать вас по следующей ссылке, которая описывает официальный способ настройки обратного прокси nginx в средах EB:

[1] Настройка прокси-сервера - https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/nodejs-platform-proxy.html

Другой вариант - использовать команду sed для обновления конфигурации nginx на месте следующим образом:

container_commands:
    enable_websockets:
        command: |
            sed -i '/\s*proxy_set_header\s*Connection/c \
                    proxy_set_header Upgrade $http_upgrade;\
                    proxy_set_header Connection "upgrade";\
            ' /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
0 голосов
/ 11 апреля 2020

Попробуйте просто поместить этот файл в .ebextensions/nginx/conf.d/elasticbeanstalk без скрипта.

По крайней мере, так работает платформа Java SE: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html. Я не думаю, что это отличается для PHP.

Также на вашем EC2 instace проверьте вывод файлов журнала (cfn-init.log, cfn-init-cmd.log et c.) .

...