记录如何在阿里云服务器上部署flask接口并实现公网访问。

1. 简介

因落地通话callback服务测试,需要我写一个测试demo,用于接收callback服务发给demo的http post请求并按一定逻辑返回对应的响应数据。数据格式为json。接口代码已在本地完成,且局域网内访问自测通过。下面介绍如何在阿里云服务器上部署这套接口并实现公网访问。

2. 部署python3环境

本地用的是python 3.7,需要在云服务器上部署python3环境。参考链接:https://blog.csdn.net/u011090984/article/details/130984739

3. 生成requirement.txt

本地pycharm测试demo中,在虚拟环境中执行下面语句,生成一个requirement.txt。这个文档会用于在云服务器上安装依赖库。

pip3 freeze > requirement.txt

4. 将项目打包上传

rz -e #上传
unzip callbackdemo.zip #解压

上面的callbackdemo.zip可以替换成自己的项目包名。

5. 安装依赖库

进入项目目录,给可执行的py文件赋权限

chmod +x aaa.py

安装依赖库。

pip3 install -r requirement.txt

执行完成后,依赖库被安装上。此时我们只能本地访问该接口,我的接口中,host=‘0.0.0.0’,post=5001。所以需要去阿里云安全组中开放5001端口。如下图:
阿里云服务器部署flask简单方法-LMLPHP
阿里云服务器部署flask简单方法-LMLPHP
入方向和出方向都配置保存,无需重启实例,实时生效。

6. 查看防火墙

配置了安全组之后,服务器防火墙依然会拦截5001端口。因此要查看防火墙状态。

firewall-cmd --state

我这边状态默认是not running,未开启防火墙,因此不需要关心防火墙问题。如果防火墙已开启,要不就选择关闭,要不就选择命令配置防火墙放行5001出入口流量。

7. 测试能否公网访问

云服务器通过python3 -m main启动接口服务。本地局域网的电脑,使用postman访问接口,接口地址使用云服务器公网ip+5001端口+路由,通。

06-02 15:37