Приложение Rails 502 с AWS Elastic Beanstalk под управлением Puma и Nginx

Мне удалось успешно запустить свое приложение на Beanstalk с помощью Passenger, однако мне не повезло с Puma. Всякий раз, когда я развертываю стек Puma, я получаю ошибку 502, мои файлы журнала показывают, что он не может найти файл носка puma:

2014/05/15 21:00:15 [crit] 1684#0: *4 connect() to unix:///var/run/puma/my_app.sock failed (2: No such file or directory) while connecting to upstream, client: 10.184.156.117, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:///var/run/puma/my_app.sock:/", host: "app-env-89spnxpcai.elasticbeanstalk.com"

Мое приложение построено с использованием Ruby ruby ​​2.0.0p451 и Rails 4.1.1

Моя конфигурация .ebextensions выглядит так

packages:
  yum:
    git: []

commands:
  add_bundle_exec:
    test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete
    cwd: /opt/elasticbeanstalk/hooks/appdeploy/pre
    command: perl -pi -e 's/(rake)/bundle exec $1/' 11_asset_compilation.sh 12_db_migration.sh
  add_deployment_flag:
    test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete
    cwd: /opt/elasticbeanstalk/hooks/appdeploy/pre
    command: perl -pi -e 's/(bundle install)/$1 --deployment/' 10_bundle_install.sh
  make_vendor_bundle_dir:
    test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete
    command: mkdir /var/app/support/vendor_bundle
  set_vendor_bundle_var:
    test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete
    cwd: /opt/elasticbeanstalk/support
    command: sed -i '12iexport EB_CONFIG_APP_VENDOR_BUNDLE=$EB_CONFIG_APP_SUPPORT/vendor_bundle' envvars
  symlink_vendor_bundle:
    test: test ! -f /opt/elasticbeanstalk/support/.post-provisioning-complete
    cwd: /opt/elasticbeanstalk/hooks/appdeploy/pre
    command: sed -i 's/\(^cd $EB_CONFIG_APP_ONDECK\)/\1\nln -s $EB_CONFIG_APP_VENDOR_BUNDLE .\/vendor\/bundle/' 10_bundle_install.sh
  z_write_post_provisioning_complete_file:
    cwd: /opt/elasticbeanstalk/support
    command: touch .post-provisioning-complete 

Что я делаю не так, мне нужно что-то особенное, чтобы заставить его работать с Puma?


person Stefan    schedule 16.05.2014    source источник
comment
У меня точно такая же проблема, вы нашли решение с тех пор?   -  person Sylvain Kalache    schedule 25.09.2015
comment
Обновление до последней версии AMI исправило это для меня.   -  person Stefan    schedule 25.09.2015
comment
Это 64-битный Amazon Linux 2015.03 v2.0.1 с Ruby 2.2 (Puma)? Если да, я уже использую этот, но проблема все еще возникла.   -  person Sylvain Kalache    schedule 26.09.2015
comment
Тогда может быть проблема с вашими ebextensions, взгляните на них, они не на 100% обновлены, но они укажут вам правильное направление github.com/Mullen/ebextensions   -  person Stefan    schedule 26.09.2015
comment
По-видимому, это нормально: поскольку в Elastic Beanstalk используется процесс обновления методом прямого обновления, может возникнуть простой в течение нескольких секунд. В настоящее время обходного пути нет. Это очень плохо. docs.aws.amazon.com/elasticbeanstalk/latest/dg/   -  person Sylvain Kalache    schedule 29.09.2015
comment
Вот почему вам нужно как минимум два сервера и делать скользящие обновления.   -  person Stefan    schedule 29.09.2015


Ответы (1)


Эта проблема не возникает в последней версии - 64-битной Amazon Linux 2014.03 v1.0.5 под управлением Ruby 2.0 (Puma).

person Stefan    schedule 24.07.2014