"Неполный ответ, полученный от заявки" от nginx / пассажира

Я попытался развернуть приложение rails на nginx и ubuntu через capistrano, как учебник на странице https://gorails.com/deploy/ubuntu/14.04. но в конце я получаю сообщение об ошибке:

Incomplete response received from application

в моем браузере. вероятно, это ошибка пассажира, но как я могу понять, что делать?

7 ответов


ваша продукция rails_env не требует настройки, вероятно, отсутствует secret_key_base.

открыть /etc/nginx/sites-available/default и измените rails_env на development:

rails_env production;
        to
rails_env development;

если приложение загружается, это не проблема пассажира.

Производственное Решение:

  1. введите корень приложения
  2. run:rake secret
  3. скопировать вывод
  4. на /yourapp/config/secrets.yml
  5. установка производства secret_key_base

перезапустите пассажирское приложение:

touch /yourapp/tmp/restart.txt

эта ошибка возникает, потому что вы не установили secret_key_base. Выполните следующие действия, чтобы исправить это:

перейдите в каталог приложений rails

cd /path/rails-app

создать базу секретных ключей

rake secret RAILS_ENV=production

установить переменную среды

SECRET_KEY_BASE=<the-secret-key-base>

перезапустите приложение Rails

touch /path/rails-app/tmp/restart.txt

для тех, кто использует пассажира:

• перейдите к корню вашего проекта.

• run bundle exec rake secret RAILS_ENV=production

• скопируйте вывод, а затем запустите sudo nano config/secrets.yml

• под production замените значение secret_key_base С недавно скопированным секретом рейка.

• нажмите клавишу CNTRL+X, нажмите клавишу y, затем нажмите enter.

• run passenger-config restart-app и выберите приложение, которое вы хотите перезапуск.

https://www.phusionpassenger.com/library/admin/apache/restart_app.html


в моем случае это было потому, что мой сервер периодически заканчивался ОЗУ (во время генерации PDF). После создания PDF-файла была восстановлена некоторая ОЗУ, и ошибка исчезнет.

У меня был сервер ubuntu с 500M ОЗУ.

Я добавлено пространство подкачки и эта ошибка исчезла.


У меня была эта проблема в выходные дни (оказалось, что между моими версиями passenger и ruby была несовместимость).

однако, кажется, никто не упоминает:фактическая ошибка может появиться в /var/log/apache2 / errors.log, не в любом пользовательском журнале.

Как только вы это узнаете, надеюсь, ваш поиск будет проще!


может быть мой ответ не в тему, но когда моя база данных mysql сервер не работает, я тоже получил эту ошибку. На случай, если у кого-то такая же ошибка.

так start/restart ваша база данных может быть другим ответом.


Это означает, что ваше приложение rails заглохло, прежде чем фактически добраться до rails. Это может быть исключением в промежуточном по, отсутствует ключ ENV, что-то на уровне ОС.

попробуйте сначала загрузить приложение локально и сделать то, что вы сделали, чтобы получить ошибку в производстве. Если все в порядке, проверьте все ваши журналы. Проверьте журналы nginx, журналы пассажиров и, наконец, любые другие журналы ОС, относящиеся к загрузке и запуску вашего приложения.