Zupełnie nowy wygenerowany projekt Rails 4.2.0. Ran rails s
, zachowywał się zgodnie z oczekiwaniami przy użyciu serwer WEBrick:Dlaczego Puma wiąże tylko tcp6? (przez `rails s`)
[email protected]:~$ 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
Dodane puma do Gemfile, prowadził pakiet, a następnie rails s
ponownie; wpadł Puma, ale tylko związany interfejs tcp6, a nie TCP:
[email protected]:~$ netstat -nlpt
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 ::1:3000 :::* LISTEN 27116/ruby2.1
Wszelkie pojęcia, dlaczego? Szukałem bez powodzenia.
UPDATE:
Running puma -b tcp://0.0.0.0:3000
prace. Jednak dodanie dyrektywy powiązania do config/puma.rb i działa rails s
nie:
bind 'tcp://0.0.0.0:3000'
nitek/pracowników dyrektyw w moim pliku config pracują jednak, więc wiem, że plik konfiguracyjny jest załadowany i uzyskiwanie używany. (Nawet dodano instrukcję put, aby się upewnić.)
Plik konfiguracyjny zostanie nawet pobrany, jeśli po prostu uruchomię puma
, wiążąc się z właściwym interfejsem. Być może muszę użyć kodu puma
zamiast rails s
, mimo że jest to denerwujące i musi zostać dodane do moich dokumentów dla programistów.
Update2:
myliłem. Uruchomienie rails s
nie powoduje automatycznego pobrania pliku config/puma.rb. Nadal bada ...
To już nie jest problem dla mnie, ponieważ zdecydowałem się użyć 'puma' do uruchomienia aplikacji rails zamiast' rails s', co sprawia, że wszystko działa - chociaż nadal uważam, że problem ten powinien zostać naprawiony. Powodem, dla którego muszę przełączyć się na 'puma', więc plik konfiguracyjny zostanie pobrany: http://stackoverflow.com/questions/25225444/how-to-run-rails-puma-server-z-config-file-using -rails-s-puma – odigity
Innym rozwiązaniem, jeśli używasz tego za odwrotnym proxy Apache/nginx, jest użycie adresu IPv6. – luismreis