我整理了一个rails 5应用程序,并尝试从AWS ec2实例运行它。我已经设置了安全组,但无法访问我选择的特殊端口。可能有什么不对?
安全组设置:
Ports Protocol Source rails-dev-and-ssh
80 tcp 72.21.xxx.0/24 ✔
22 tcp 72.21.xxx.0/24 ✔
3800 tcp 0.0.0.0/0 ✔
Puma服务器已启动:
[ec2-user@ip-172-31-42-206 Viewer]$ rails server -p 3800 -b 172.31.42.206
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://172.31.42.206:3800
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://172.31.42.206:3800
Use Ctrl-C to stop
从同一个实例中,这两个请求都返回成功(rails版本和blob的东西):
curl http://172.31.42.206:3800 <private IP>
curl http://54.86.xxx.xx:3800 <public IP
但是我的计算机不在EC2中,我可以卷起端口80没有问题,但不是端口3800,Puma正在运行。这让我相信我的AWS VPC配置没问题,但是Puma绑定的IP有问题。我也试过绑定到0.0.0.0。
$ curl http://54.86.xxx.xx/ <the public ip, port 80, succeeds>
hi raj var www html
$ curl http://54.86.xxx.xx:3800
curl: (7) Failed to connect to 54.86.xxx.xx port 3800: Operation timed out
答案 0 :(得分:0)
它不是AWS或rails ....它是我愚蠢的办公室防火墙,阻止我访问ec2中的任意端口。我可以通过手机访问网站。遗憾!