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

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

Incomplete response received from application

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

Ответ 1

В вашем проекте rails_env нет необходимой настройки, возможно, отсутствует secret_key_base.

Откройте /etc/nginx/sites-available/default и измените rails_env на разработку:

rails_env production;
        to
rails_env development;

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

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

  • Введите корень приложения
  • run: rake secret
  • скопировать вывод
  • перейти к /yourapp/config/secrets.yml
  • установить secret_key_base

Перезапустите приложение для пассажиров:

touch /yourapp/tmp/restart.txt

Ответ 2

Эта ошибка возникает из-за того, что вы не установили 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

Ответ 3

Для тех, кто использует Passenger:

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

• запустить bundle exec rake secret RAILS_ENV=production

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

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

• нажмите CNTRL+X, затем нажмите y, затем нажмите enter.

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

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

Ответ 4

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

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

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


Обновление, так как мне нужно было вернуться к этому снова - это верно и для nginx - /var/log/nginx/error.log - ваш друг в этом случае!

Ответ 5

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

У меня был сервер Ubuntu с 500M оперативной памяти.

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

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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

Мое решение - проверить имя файла, который может содержать некоторые специальные символы, такие как '[(~.

Просто удалите его и загрузите файл снова.

Удачи ~

Ответ 9

Я получил это, только на моем тестовом сервере, а не в рабочей среде, потому что я запрашивал несуществующий URL, и я предполагаю, что в тестовой среде Rails выдает ошибку вместо возврата ответа 404.