Roo*_*kie 16 python amazon-ec2 amazon-web-services flask ubuntu-14.04
我在端口5000上的AWS Ubuntu服务器上运行了一个烧瓶应用程序(烧瓶在端口5000上运行默认值).但是当我尝试访问该端口上的服务器时,它永远不会连接.
我在AWS控制台Custom TCP上添加了一个安全组,作为5000任何IP地址的端口0.0.0.0/0,但我仍然无法访问它.
我必须重启服务器吗?或者我错过了什么?
让我知道要提供的任何其他信息.
Wil*_*ill 25
除了允许通过安全组访问端口5000之外,您还需要确保您的应用正在侦听可以接受来自外部的TCP连接的IP.要收听所有IP,请在您的应用中使用:
if __name__ == '__main__':
app.run(host='0.0.0.0', debug = False)
Run Code Online (Sandbox Code Playgroud)
代替:
if __name__ == '__main__':
app.run(host='127.0.0.1', debug = False)
Run Code Online (Sandbox Code Playgroud)
要查看应用程序正在侦听的地址,可以运行以下命令:
netstat -an | grep :5000
Run Code Online (Sandbox Code Playgroud)
进行这些更改后,您将需要重新启动Flask应用程序.
我假设您只是将它用于开发和测试,因为您将其保留在端口上5000,但是,当您准备将应用程序部署到生产环境中时,您需要将其置于真正的Web服务器之后.我建议在uWSGI中使用nginx.以下是配置Flask + nginx + uWSGI的指南,这里是Flask关于该主题的官方文档.
mbr*_*rig 10
除了@Will的答案之外,你可能会使用默认的限制性iptables规则来使用你所使用的Ubuntu AMI.使用:
sudo iptables -L
Run Code Online (Sandbox Code Playgroud)
列出任何现有规则.使用:
sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
必要时打开端口.
| 归档时间: |
|
| 查看次数: |
11509 次 |
| 最近记录: |