一、环境

        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错误;

flask docker部署 flask部署到windows云服务器_flask docker部署

        2.当从aws实例里直接公网访问flask项目(公网ip:端口,0.0.0.0:8080),也会出现问题;

flask docker部署 flask部署到windows云服务器_windows_02

         3.但是从aws实例里直接内网访问flask项目(内网ip:端口,192.168.3.100:8080),却可以正常访问。

flask docker部署 flask部署到windows云服务器_windows_03

(2)修改安全组。

        于是参考链接[1]进行安全组的修改,仍然出现上述问题。

flask docker部署 flask部署到windows云服务器_flask_04

(3)尝试关闭防火墙

        百度和csdn找了很多文章,都没法成功,原因是大多数文章描述的是aws ubuntu环境的部署,而windows环境的flask部署相关文章少之又少,只能自己继续摸索。

        首先想到的windows防火墙问题,于是参考链接[2],关闭所有防火墙。

flask docker部署 flask部署到windows云服务器_内网_05

        以上问题全部迎刃而解了,但这种方法治标不治本,还会出现安全问题,因此重新开启(3)步骤的防火墙。

(4)修改入站规则

         接着想到了修改防火墙入站规则。继续参考链接[2],但有所改动。

        1.开始菜单搜索“高级”。

flask docker部署 flask部署到windows云服务器_flask docker部署_06

         2.左侧找到并点击“入站规则”。

flask docker部署 flask部署到windows云服务器_flask_07

         3.右侧找到并点击“新建规则” 。

 

flask docker部署 flask部署到windows云服务器_flask_08

         4.选择“端口”,点击“下一步”  。

flask docker部署 flask部署到windows云服务器_flask_09

          5.勾选“TCP”,在“特定本地端口”填入flask的端口(本例为8080),点击“下一步”  。

flask docker部署 flask部署到windows云服务器_windows_10

           6.勾选“允许连接”,点击“下一步” 。

flask docker部署 flask部署到windows云服务器_windows_11

           7.填写“名称”(本例为flask),描述可以不填,点击“完成” 。

 

flask docker部署 flask部署到windows云服务器_flask_12

           8.中间“入站规则”列表内显示有刚刚添加的规则,大功告成 。

flask docker部署 flask部署到windows云服务器_flask_13

五、结果

        再次尝试,从办公室连接(http://aws公网ip:8080),完美解决!