Gần đây, tôi đã gặp sự cố với các trường hợp AWS EC2 của mình. Vấn đề là tôi không thể nhấn máy chủ Rails của tôi thông qua IP công cộng, nhưng tôi có thể nhấn localhost và máy chủ sẽ phản hồi.Không thể kết nối với máy chủ Rails chạy trên EC2 từ IP công cộng
Đây là những gì tôi đang làm:
- Tạo dụ mới EC2 (t2.micro, tầng ubuntu miễn phí)
- nhóm an ninh có cổng 22, 80, 3000 mở cửa cho tất cả mọi người (0.0.0.0)
- SSH để EC2 dụ, cài đặt lan can (tôi đã sử dụng this để cài đặt)
- Bắt đầu ray máy chủ sau khi cài đặt, nó đang chạy trên cổng 3000
- chạy "wget localhost: 3000" và nó sẽ trả về index.html , yay!
- truy cập trình duyệt web của tôi, nhập IP công khai phiên bản EC2 và cổng 3000 (IP: 3000), cho biết không thể kết nối: (
- server rails, khởi động lại trên cổng 80, wget hoạt động nhưng có thể ' t kết nối qua IP công cộng
- như một kiểm tra sanity, tôi cài đặt nginx và chạy nó, và có thể xem trang nginx bắt đầu trên cổng 80 qua IP công cộng ... rất bối rối ...
vì vậy, Tôi nghĩ rằng nó có một cái gì đó để làm với cách tôi đang cài đặt Rails, nhưng tôi đã thử các phương pháp khác hơn là sử dụng kịch bản cài đặt nhưng tôi gặp phải cùng một vấn đề ... Tôi thậm chí đã cố gắng tạo ra một enti dựa vào tài khoản AWS mới chỉ trong trường hợp tôi thay đổi cài đặt trong tài khoản ban đầu của mình nhưng không có bất kỳ sự may mắn nào. Trước đây tôi đã có thể nhận được các đường ray chạy trên các cá thể EC2 tốt (thực tế tôi có các cá thể EC2 sử dụng cùng một nhóm bảo mật đang chạy trên tài khoản AWS của tôi ngay bây giờ và có thể tấn công các IP công cộng đó), nhưng bây giờ tôi chỉ đập đầu chống lại bức tường ... bất kỳ sự giúp đỡ nào sẽ được đánh giá cao!
EDIT: Hiện tại, tôi đã định cấu hình nginx để truy cập máy chủ rails của mình .... ít nhất là công việc hiện tại ... mặc dù tôi vẫn tò mò vì sao tôi không thể truy cập trực tiếp vào máy chủ rails của mình ..
Bạn rất có thể cũng cần phải mở tường lửa của Ubuntu cho phép cổng 80 và/hoặc 3000. http://serverfault.com/ question/574491/opening-port-80-on-ubuntu-aws – infused
Tôi chạy 'ufw status' và nó nói nó không hoạt động. Đầu ra của 'iptables -L' như sau: 'root @ ip-172-31-3-171:/home/ubuntu/blah # iptables -L Chuỗi INPUT (chính sách CHẤP NHẬN) đích nhắm mục tiêu nguồn lựa chọn prot CHẤP NHẬN tcp - ở bất cứ nơi đâu tcp dpt: http' – spacemonkeys