一、环境
1.aws新用户一年免费版
2.aws云主机(ec2实例、windows2019server系统)
3.python3.7(anaconda)
4.flask使用端口:8080
二、解决方案
1.编辑安全组
2.编辑windows2019server入站规则
三、背景
近期做了个flask项目,但单位的公网端口被封了,只能部署在云主机,刚好想起前段时间刚开了aws新用户(需要一张visa卡),有一年免费使用权,于是就打算部署在aws上面。
四、过程
(1)部署的时候遇到了各种问题,总是无法访问。
1.当从外网(办公室)访问aws的flask项目,会出现403错误;
2.当从aws实例里直接公网访问flask项目(公网ip:端口,0.0.0.0:8080),也会出现问题;
3.但是从aws实例里直接内网访问flask项目(内网ip:端口,192.168.3.100:8080),却可以正常访问。
(2)修改安全组。
于是参考链接[1]进行安全组的修改,仍然出现上述问题。
(3)尝试关闭防火墙
百度和csdn找了很多文章,都没法成功,原因是大多数文章描述的是aws ubuntu环境的部署,而windows环境的flask部署相关文章少之又少,只能自己继续摸索。
首先想到的windows防火墙问题,于是参考链接[2],关闭所有防火墙。
以上问题全部迎刃而解了,但这种方法治标不治本,还会出现安全问题,因此重新开启(3)步骤的防火墙。
(4)修改入站规则
接着想到了修改防火墙入站规则。继续参考链接[2],但有所改动。
1.开始菜单搜索“高级”。
2.左侧找到并点击“入站规则”。
3.右侧找到并点击“新建规则” 。
4.选择“端口”,点击“下一步” 。
5.勾选“TCP”,在“特定本地端口”填入flask的端口(本例为8080),点击“下一步” 。
6.勾选“允许连接”,点击“下一步” 。
7.填写“名称”(本例为flask),描述可以不填,点击“完成” 。
8.中间“入站规则”列表内显示有刚刚添加的规则,大功告成 。
五、结果
再次尝试,从办公室连接(http://aws公网ip:8080),完美解决!
参考链接:
[1]在AWS上部署Flask项目,并用外网访问_FriendshipT的博客-CSDN博客
[2]https://jingyan.baidu.com/article/cdddd41c30e3ef13ca00e138.html