【发布时间】:2014-09-25 06:03:53
【问题描述】:
我已经启动了一个 amazon-ec2 实例,其公共 DNS 为 ec2-12-34-567-89.us-west-2.compute.amazonaws.com。在那里我设置了一个安全组,其中type=HTTP,protocol=TCP,port range=80,source=0.0.0.0/。我登录到 EC2 实例并启动我的应用程序:
$ python3 run.py
* Running on http://0.0.0.0:0/
然后我尝试使用浏览器打开:http://ec2-12-34-567-89.us-west-2.compute.amazonaws.com 并收到“无法连接”消息。
我在这里错过了什么?
编辑
使用 80 端口,结果如下:
$ python3 run.py
* Running on http://0.0.0.0:80/
Traceback (most recent call last):
File "run.py", line 5, in <module>
app.run(host="0.0.0.0", port=80)
File "/opt/python/3.4.1/lib/python3.4/site-packages/flask/app.py", line 772, in run
run_simple(host, port, self, **options)
File "/opt/python/3.4.1/lib/python3.4/site-packages/werkzeug/serving.py", line 710, in run_simple
inner()
File "/opt/python/3.4.1/lib/python3.4/site-packages/werkzeug/serving.py", line 692, in inner
passthrough_errors, ssl_context).serve_forever()
File "/opt/python/3.4.1/lib/python3.4/site-packages/werkzeug/serving.py", line 486, in make_server
passthrough_errors, ssl_context)
File "/opt/python/3.4.1/lib/python3.4/site-packages/werkzeug/serving.py", line 410, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File "/opt/python/3.4.1/lib/python3.4/socketserver.py", line 429, in __init__
self.server_bind()
File "/opt/python/3.4.1/lib/python3.4/http/server.py", line 133, in server_bind
socketserver.TCPServer.server_bind(self)
File "/opt/python/3.4.1/lib/python3.4/socketserver.py", line 440, in server_bind
self.socket.bind(self.server_address)
PermissionError: [Errno 13] Permission denied
【问题讨论】:
-
好吧,您一开始就没有在端口 80 上运行。您是在 VPC 中还是在 EC2 经典中启动了您的实例?
-
试过 $ python3 run.py * 在0.0.0.0:8001 上运行但没有成功。如何检查 VPC 与 EC2 经典?当我启动实例时,我以为我正在启动一个 EC2 实例。
-
8001 仍然不是端口 80。如果您希望这些其他端口可用,则必须在安全组中声明它。至于 VPC/EC2-classic:当您转到菜单左上角组的 aws-console 时,您将看到 EC2 作为从上数第二个,下面的两项将是 VPC。
标签: amazon-ec2