2015-01-04 17 views
7

Dự án Rails 4.2.0 mới được tạo thương hiệu. Ran rails s, cư xử như mong đợi sử dụng WEBrick:Tại sao Puma chỉ liên kết với tcp6? (thông qua `đường ray 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 

Added puma để Gemfile, chạy bó, sau đó rails s một lần nữa; đã đưa ra Puma, nhưng chỉ ràng buộc giao diện tcp6, không phải 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 

Bất kỳ đầu mối nào tại sao? Tôi đã googling không có may mắn.

UPDATE:

Chạy puma -b tcp://0.0.0.0:3000 công trình. Tuy nhiên, thêm chỉ thị bind để cấu hình/puma.rb và chạy rails s không:

bind 'tcp://0.0.0.0:3000' 

Các chủ đề/công nhân chỉ thị trong tập tin cấu hình của tôi đang làm việc, tuy nhiên, vì vậy tôi biết tập tin cấu hình là nhận được nạp và đã sử dụng. (Thậm chí đã thêm tuyên bố đặt để chắc chắn.)

Tệp cấu hình thậm chí được chọn nếu tôi chỉ chạy puma, ràng buộc với giao diện chính xác. Tôi chỉ có thể phải sử dụng để chạy puma thay vì rails s, mặc dù nó gây phiền nhiễu và phải được thêm vào tài liệu dành cho nhà phát triển của tôi.

UPDATE2:

tôi đã nhầm lẫn. Chạy rails s không tự động nhận cấu hình/puma.rb. Vẫn đang điều tra ...

+0

Điều này không còn là vấn đề đối với tôi vì tôi đã quyết định sử dụng 'puma' để chạy ứng dụng đường ray thay vì' rails s', điều này làm mọi thứ hoạt động - mặc dù tôi vẫn cho rằng vấn đề này nên được khắc phục. Lý do tôi phải chuyển sang 'puma' là tập tin cấu hình được chọn: http://stackoverflow.com/questions/25225444/how-to-run-rails-puma-server-with-config-file-using -rails-s-puma – odigity

+0

Một giải pháp khác, nếu sử dụng điều này đằng sau proxy ngược apache/nginx chỉ là sử dụng địa chỉ IPv6. – luismreis

Trả lời

0

Chạy đường ray như:

rails s -b 0.0.0.0 

công trình đối với tôi. Vấn đề là "localhost" (địa chỉ liên kết mặc định) ràng buộc trên IPv4 và IPv6 và v6 được chọn nếu cả hai đều có sẵn. 0.0.0.0 buộc sử dụng địa chỉ IPv4 (cũng hoạt động với 127.0.0.1).

+0

Đối với tôi, ngay cả sau khi chạy đường ray lệnh này nghe trên tcp: //0.0.0.0: 3000 –

Các vấn đề liên quan