Совершенно новый сгенерированный проект Rails 4.2.0. Запустил rails s
, вел себя, как и ожидалось, используя WEBrick:
vagrant@web1:~$ netstat -nlpt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN 27158/ruby2.1
tcp6 0 0 ::1:3000 :::* LISTEN 27158/ruby2.1
Добавил puma в Gemfile, запустил бандл, потом снова rails s
; придумал Puma, но привязал только интерфейс tcp6, а не tcp:
vagrant@web1:~$ netstat -nlpt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 ::1:3000 :::* LISTEN 27116/ruby2.1
Любая подсказка, почему? Я безуспешно гуглил.
ОБНОВЛЕНИЕ:
Ходовая puma -b tcp://0.0.0.0:3000
работает. Однако добавление директивы bind в config/puma.rb и запуск rails s
не приводит к:
bind 'tcp://0.0.0.0:3000'
Однако директивы threads/workers в моем файле конфигурации работают, поэтому я знаю, что файл конфигурации загружается и используется. (Даже добавлен оператор puts, чтобы быть уверенным.)
Файл конфигурации подхватывается, даже если я просто запускаю puma
, привязываясь к правильному интерфейсу. Возможно, мне просто придется прибегнуть к запуску puma
вместо rails s
, хотя это раздражает и должно быть добавлено в мои документы разработчика.
ОБНОВЛЕНИЕ 2:
Я ошибался. Запуск rails s
не вызывает config/puma.rb автоматически. Все еще расследуют...
puma
для запуска приложения rails вместоrails s
, что заставляет все работать, хотя я все еще думаю, что эта проблема должна быть исправлена. Причина, по которой я должен переключиться наpuma
, заключается в том, что файл конфигурации загружается: stackoverflow.com/questions/25225444/ - person odigity   schedule 04.01.2015