Connect() не удалось (111: соединение отказано) при подключении к восходящему потоку

Я размещаю свое приложение Rails на Rackspace с веб-сервером nginx.

При вызове любого Rails API я вижу это сообщение в /var/log/nginx/error.log:  * 49 connect() не удалось (111: соединение отказано) при подключении к восходящему потоку, клиент: 10.189.254.5, сервер:, запрос: "POST/api/v1/users/sign_in HTTP/1.1", upstream: "http://127.0.0.1:3001/api/v1/users/sign_in", хост: "anthemapp.com"

  • Что такое восходящий блок?
  • Что такое /etc/nginx/sites -available/default? Это где я могу настроить это?
  • Почему я получаю ошибку выше?

Я провел несколько часов с 5-6 различными техническими специалистами Rackspace (они не знали, как это разрешить). Все это началось, когда я включил сервер в режим спасения и выполнил следующие шаги: https://community.rackspace.com/products/f/25/t/69. Как только я вышел из режима спасения и перезагрузил сервер, я начал получать ошибку, о которой я пишу. Tnx!

+6
источник поделиться
3 ответа

Nginx - это обратный прокси-сервер - его роль на вашем сервере заключается в том, чтобы принимать HTTP-запросы и передавать их другому процессу на том же хосте. "Восходящий поток", о котором говорится в сообщении об ошибке, относится к биту в конфигурации nginx (частью которого является файл /etc/nginx/sites-available/default), который сообщает ему, куда отправлять входящие запросы. Сообщение об ошибке, которое вы видите, указывает, что nginx получил запрос, но не смог отправить его другому процессу, который он должен был использовать.

Когда ваш сервер перезагрузился, процесс nginx запустился, но ваш Rails-процесс - тот, который предназначался для прослушивания на порту 3001 - не сделал!

Как перезапустить процесс Rails зависит от того, как вы его запускали раньше и как настроен ваш сервер. Это может быть так же просто, как cd войти в ваш каталог приложений Rails на сервере и запустить:

rails server -b 127.0.0.1 -p 3001 -e production -d

... но для предотвращения подобных ситуаций в будущем (и для повышения производительности вашего приложения Rails!) было бы лучше использовать какой-то готовый к производству сервер приложений Rails. Я бы рекомендовал использовать Phusion Passenger, потому что это самое подходящее решение - их для nginx описывает установку и настройку, но есть много альтернатив. Там отличная запись того, что ваши варианты, что они все означают, и как они относятся к qaru.site/questions/13951/....

+9
источник

В моем случае мне нужно запустить:

bundle install
bundle update

а затем:

sudo stop puma-manager
sudo start puma-manager
0
источник
другие ответы

Связанные вопросы


Похожие вопросы

Это разрешено, когда я запускаю команду

cap production puma:restart

Иногда это происходит, если мы переключаем рубиновую версию на производство

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос