Как сделать приложение rails, слушающее все интерфейсы - PullRequest
0 голосов
/ 09 февраля 2020

Мой рабочий сервер rails отклоняет соединения по причинам, которые я не понимаю. Когда я пытаюсь подключиться через браузер, я получаю следующее сообщение об ошибке от Chromium:

This site can’t be reached. cinemeeting.eu refused to connect. ERR_CONNECTION_REFUSED.

Единственная помощь, которую я получил до сих пор, от josegonzalez на GitHub , который предложил, чтобы мое приложение слушало все интерфейсы и уважайте переменную среды PORT. Мой файл config/puma.rb, как подсказывает Heroku , следующий:

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/
  # deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

Как я могу проверить, слушает ли puma все интерфейсы?
josegonzalez также предложил решение в Stackoverflow, однако я не понимаю, почему привязка применяется к порту 3000.

Я развернул свое приложение на NetCup, немецкий хостинг-провайдер, через dokku , следуя инструкциям в документации Dokku .

1 Ответ

1 голос
/ 09 февраля 2020

Возможно, проблема в том, что cinemeeting.eu не указывает на ваш сервер Heroku. dig cinemeeting.eu показывает, что он указывает на 5.252.227.76, который не является Heroku.

Попробуйте подключиться к домену herokuapp.com. Это будет your-app-name.herokuapp.com. Убедитесь, что вы используете https. Если это работает, это означает, что ваше приложение работает нормально, и это проблема DNS. Следуйте инструкциям в Пользовательские доменные имена для приложений , чтобы указать cinemeeting.eu на ваше приложение Heroku.

Я не понимаю, почему привязка применяется к порту 3000.

Используется только для локальной разработки. http://localhost:3000. В Heroku будет использоваться переменная окружения PORT, предоставленная Heroku.

...