2015-01-04 21 views
7

Yepyeni üretilen Raylar 4.2.0 projesi. Gemfile içinPuma neden sadece tcp6'ya bağlanıyor? (raylar aracılığıyla)

[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 

Eklendi puma sonra yine rails s, bohça koştu;: WEBrick kullanarak beklendiği gibi davrandığını rails s, Ran Puma ile geldi, ama sadece tcp6 arayüzünü değil, tcp bağlı: neden

[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 

Herhangi ipucu? Şanssız geziyorum.

GÜNCELLEME: puma -b tcp://0.0.0.0:3000 eser Koşu

. Ancak, bağlama yönergesi ekleme/puma.rb config ve rails s çalışmadığı yapar: Benim yapılandırma dosyasında

bind 'tcp://0.0.0.0:3000' 

konu/işçi direktifleri Ancak çalışıyoruz, bu yüzden yapılandırma dosyası yüklenir oluyor biliyor ve Kullanılmış. (Hatta emin olmak için bir koyar deyimi ekledi.)

puma çalıştırıyorsam, doğru arabirime bağlanıyorsa, yapılandırma dosyası bile alınıyor. Sadece sinir bozucu ve geliştirici belgelerime eklenmesi gerekmesine rağmen, rails s yerine puma'u çalıştırmak zorunda kalabilirim.

Update2:

yanılmışım. rails s'un çalıştırılması, config/puma.rb dosyasını otomatik olarak almaz. Yine böyle rayları Koşu

+0

Bu benim için artık bir sorun değil çünkü 'puma' 'raylar' yerine raylar uygulamasını çalıştırmak için kullanmaya karar verdim, bu da her şeyin işe yaradığını gösteriyor - yine de bu sorunun düzeltilmesi gerektiğini düşünüyorum. 'Puma' seçeneğine geçiş yapmamın nedeni, yapılandırma dosyasının alınabilmesidir: http://stackoverflow.com/questions/25225444/how-to-run-rails-puma-server-with-config-file-using -rails-s-puma – odigity

+0

Başka bir çözüm, bunu bir apache/nginx ters proxy arkasında kullanıyorsa, sadece IPv6 adresini kullanmaktır. – luismreis

cevap

0

... araştıran: Benim için

rails s -b 0.0.0.0 

çalışır. Sorun şu ki, "localhost" (varsayılan bağlantı adresi) IPv4 ve IPv6'ya bağlanır ve her ikisi de mevcutsa v6 seçilir. 0.0.0.0, bir IPv4 adresi kullanmasını zorlar (ayrıca 127.0.0.1 ile çalışır).

+0

Benim için, bu komutları çalıştırdıktan sonra bile tcp: //0.0.0.0: 3000 üzerinde dinler –