Tôi có máy ảo Vagrant với Rails được cài đặt với ứng dụng mẫu. VM được cấu hình để chuyển tiếp cổng 3000 (của máy chủ Rails Webrick) tới cổng 3000 của máy chủ của tôi.Rails 4.2 Chuyển tiếp cổng máy chủ trên Vagrant không hoạt động
config.vm.network "forwarded_port", guest: 3000, host: 3000
Mọi thứ được định cấu hình như trong nhiều ví dụ.
Nhưng, khi tôi cố gắng truy cập http://localhost:3000
không có gì xảy ra. Tôi cũng đã cố gắng chuyển tiếp đến các cổng ngẫu nhiên khác như 8081, 25600, mà không thành công. Thực hiện yêu cầu curl cũng không nhận được bất kỳ thứ gì (chỉ cần Thiết lập lại kết nối theo thông báo ngang hàng) và yêu cầu curl bên trong VM hoạt động hoàn hảo (như mong đợi).
Cả PC và máy ảo của tôi đều chạy Ubuntu 12.04. Tôi đang sử dụng Ruby 2.2.0 và Rails 4.2.0.
Điểm quan trọng là Apache hoạt động bình thường. Tôi chuyển tiếp cổng 80 đến cổng 8080 và mọi thứ hoạt động. Dường như vấn đề chỉ xảy ra với máy chủ Rails, ngay cả khi tôi sử dụng các cổng khác (ví dụ: rails server -p 4000
)
Tôi sẽ làm điều đó! Mọi máy chủ đều nên sử dụng 0.0.0.0 khi bên trong máy ảo? Tôi không biết về điều đó ... –
Không, đây không phải là cách an toàn nhất để làm điều đó. 0.0.0.0 chỉ có nghĩa là lắng nghe bất kỳ địa chỉ nào. Thay đổi có nghĩa là nó sẽ chỉ đáp ứng các yêu cầu từ máy ảo chứ không phải máy chủ của bạn. Nó là tốt cho phát triển, không làm điều đó trong sản xuất. –
Tôi đã gặp phải sự cố tương tự. Bạn có những khuyến nghị nào để thiết lập môi trường sản xuất? Có một đường dẫn IP cụ thể nên liên kết với? – helsont