"Неполный ответ, полученный от приложения" от 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.