AWS EC2部署Flask应用后无法通过公网访问怎么解决?
解决步骤
- 修正访问地址
你当前的访问地址格式和协议均错误:端口需使用冒号拼接在IP之后,且Flask默认启动的是HTTP服务,未配置SSL证书时无法用HTTPS访问。将访问地址从https://3.69.xyz.abc/5000修改为http://3.69.xyz.abc:5000即可。 - 放行EC2实例本地防火墙端口
Ubuntu系统默认开启ufw防火墙,即使安全组已经放行端口,本地防火墙规则未配置也会导致无法访问,执行以下命令放行5000端口:
sudo ufw allow 5000/tcp
执行后可通过sudo ufw status确认规则已生效。
- 可选:处理Datadog报错
日志中的Datadog连接报错不影响Flask服务对外访问,仅因为你安装了ddtrace依赖但未启动Datadog Agent导致,不需要该功能的话可以直接卸载对应依赖:
pip uninstall ddtrace
- 补充排查
如果以上操作后仍无法访问,确认你访问的设备是否使用IPv6网络,可在安全组中新增一条IPv6的TCP端口放行规则,源地址为::/0,端口范围包含5000即可。 - 生产部署建议
Flask自带的开发服务器不适合生产环境使用,正式上线建议更换为Gunicorn作为WSGI服务器,搭配Nginx做反向代理,同时配置SSL证书开启HTTPS访问。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

