2016-12-06 2 views
2

Я пытаюсь изменить свойство client_max_body_size моего обратного прокси-фильтра NGINX моего эластичного beanstalk, чтобы разрешить загрузку больших файлов JPEG. Поэтому я добавил папку «.ebextensions» в корневую директорию моего WAR-файла (файл WAR также включает приложение Spring Boot) и добавил файл «.ebextensions/01_files.config» со следующим содержимым:Эластичный бобовый стебель. Замечания, проигнорированные в WAR

files: 
    "/etc/nginx/conf.d/proxy.conf" : 
    mode: "000755" 
    owner: root 
    group: root 
    content: | 
     client_max_body_size 20M; 

Разверните WAR-файл с помощью Travis-CI до эластичного бобового стебля. Тем не менее, кажется, что файл игнорируется Elastic Beanstalk с момента загрузки с файловым файлом, например. 2MB не работают, и при подключении с SSH к экземпляру и поиске «/etc/nginx/conf.d/proxy.conf» файл не существует.

Я уже успешно прошел проверку над содержимым с помощью валидатора YAML. Я знаю, существует множество связанных вопросов, но не те, которые, похоже, исправляют мою проблему. Я также проверил, включен ли файл .ebextensions/01_files.config в файл WAR в корневом каталоге. И когда я проверяю «/ tmp/eb_extracted_jar», файл «.ebextensions/01_files.config» также существует с правильным контентом. Я даже не могу найти ошибок в файле /var/log/cfn-init.log. Я заметил, что в течение нескольких секунд файл «proxy.conf» появился в «/etc/nginx/conf.d/» во время развертывания, но затем он был удален.

Может ли эта проблема возникнуть из-за развертывания на эластичном бобовом стебле через Travis-CI? Или я пропустил что-то еще, что важно?

EDIT: Я просто признал, что файл «proxy.conf» создается каждый раз, когда в течение нескольких секунд после развертывания приложения, но через несколько секунд оно исчезает (проверено с ls -lsa в «/ и т.д./Nginx /conf.d/ "увидеть временные метки с 13:34 для "elasticbeanstalk" директории и "healthd_http.conf" и 13:43 для "proxy.conf")

4 drwxr-xr-x 3 root root 4096 6. Dec 13:43 . 
4 drwxr-xr-x 4 root root 4096 6. Dec 13:34 .. 
4 drwxr-xr-x 2 root root 4096 6. Dec 13:34 elasticbeanstalk 
4 -rw-r--r-- 1 root root 148 6. Dec 13:34 healthd_http.conf 
4 -rwxr-xr-x 1 root root 26 6. Dec 13:43 proxy.conf 

и уже через несколько секунд ls -lsa" /etc/nginx/conf.d/ ":

4 drwxr-xr-x 3 root root 4096 6. Dec 13:44 . 
4 drwxr-xr-x 4 root root 4096 6. Dec 13:44 .. 
4 drwxr-xr-x 2 root root 4096 6. Dec 13:44 elasticbeanstalk 
4 -rw-r--r-- 1 root root 148 6. Dec 13:44 healthd_http.conf 

ответ

5

После нескольких часов чтения документов я узнал, что пропустил некоторые важные части официальных документов AWS для платформы Elastic Beanstalk Java SE (см. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html).

  1. Определенно моя ошибка: я использовал неправильное расширение файла, расширение файла в папке «.ebextensions» должно быть «.conf», но не «.config».

  2. По крайней мере, для платформы Java SE: можно напрямую добавить конфигурационные файлы NGINX в каталог «.ebextensions», не используя синтаксис «files: ...» для создания файла с определенным контентом, то есть для создания прокси-файл в файле /etc/nginx/conf.d/proxy.conf просто добавляет «.ebextension/nginx/conf.d/proxy.conf» с контентом client_max_body_size 20M;. Впоследствии «proxy.conf» затем будет развернут в «/etc/nginx/conf.d/proxy.conf» и автоматически включен в конфигурацию NGINX по умолчанию.

Надеюсь, что этот ответ спасет кого-то еще, когда мне потребовалось выяснить это.

+0

Я не думаю, что это правильно. Я использую расширения '.config' в соответствии с http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html Однако у меня все еще есть проблемы :( – Phil

+0

Используете ли вы обратный прокси-сервер с балансировщик нагрузки? Потому что тогда вам понадобится '.conf', как описано здесь: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html – Tom

Смежные вопросы