"502 Bad Gateway" с пассажиром - PullRequest
       12

"502 Bad Gateway" с пассажиром

2 голосов
/ 13 января 2011

Я использую rails (2.3.10) / passenger (2.2.15) / nginx (0.7.67), когда я запускаю свое приложение, оно дает мне "502 Bad Gateway" и без какого-либо производственного журнала, мой файл conf это:

  1 server {
  2     listen  80;
  3     server_name  www.why.bz;
  4     root   /usr/local/apps/why/pro/public;
  5     access_log  /usr/local/apps/why/pro/log/access.log;
  6     passenger_enabled on;
  7 }

кто может дать мне несколько советов, спасибо!

Ответы [ 3 ]

7 голосов
/ 13 февраля 2011

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

  • Поскольку это приложение Ruby on Rails, вы можете сказать, откуда возникла ошибка: сам Nginx или Rails? Это больше похоже на проблему с Nginx, но было бы полезно знать. Краткий обзор Rails production.log или Nginx error_log должен прояснить эту информацию.

  • Как вы подключаетесь к приложению: веб-браузер или командная строка? Правильно ли заданы IP-адрес и имя хоста (попробуйте команду «dig» в Linux)? Вы пытаетесь ударить http://localhost:80?

  • Существуют команды журнала ошибок, которые принимает nginx, которые могут быть настроены для помощи в устранении неполадок (подобно строке access_log): http://wiki.nginx.org/CoreModule#error_log

  • Наконец, проверьте разрешения, установленные для ваших веб-файлов: веб-сервер nginx должен иметь возможность доступа к ним. Требуются как минимум разрешения на «чтение».

Удачи, Harmon

0 голосов
/ 23 мая 2019

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

Одна вещь, которую я иногда забываю, особенно если я не начинаю с промежуточной среды, а затем добавляю ее позже, - это добавить в мой файл secrets.yml следующее:

staging:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

Это говорит Rails получить значение secret_key_base из переменной окружения, SECRET_KEY_BASE. Вы должны указать эту переменную, поместив ее в конфигурацию nginx:

passenger_env_var SECRET_KEY_BASE yoursupersecretkeybase;

Если у вас нет SECRET_KEY_BASE, вы можете сгенерировать его с помощью:

bundle exec rake secret
0 голосов
/ 26 ноября 2013

измените его на

listen 443;

это может быть так просто.

...