我已经开始了一个亚马逊ec2实例,公开了一个ec2-12-34-567-89.us-west-2.compute.amazonaws.com的DNS。在那里我建立了一个安全组,其中type = HTTP,protocol = TCP,端口范围= 80,源= 0.0.0.0 /。我登录到EC2实例并启动我的应用程序:与浏览器我尝试打开如何公开查看我在amazon-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 classic推出您的实例? – alfasin 2014-09-25 06:33:42
试过 $ python3 run.py *在http://0.0.0.0:8001/ 上运行,但没有成功。 我该如何检查VPC vs EC2 classic?当我启动实例时,我以为我正在启动一个EC2实例。 – 2014-09-25 06:40:03
8001仍然不是80端口。如果您希望这些其他端口可用,您必须在安全组中声明它。至于VPC/EC2-classic:当你进入菜单左上角的aws-console时,你将拥有EC2作为第二名,下面的两项将是VPC。 – alfasin 2014-09-25 07:02:37