linux服务器上部署flask后端

1.导出所需环境

在项目的env或venv目录下执行:pip freeze >requirements.txt ,生成当前环境所需的。
把项目通过xftp软件放入到服务器中

2.服务器新建虚拟环境

新建一个python版本3.9的环境,起名py39:
conda create -n py39 python=3.9
激活环境,进入到当前环境:
source activate py39
在这里插入图片描述
进入到项目下的env或venv目录,执行下列语句,导入环境:
pip install -r requirements.txt

3.开放端口

firewall-cmd --list-ports 查看开放了哪些端口
firewall-cmd --zone=public --add-port=80/tcp --permanent 开放80端口
firewall-cmd --reload 重启防火墙
其他:
查看端口占用: netstat -tunlp|grep 端口号
杀死端口占用:
在这里插入图片描述

4.阿里云服务器开放端口(一定要开放!!)

云服务器控制台-》实例-》管理-》安全组-》配置规则-》访问规则
linux服务器上部署flask后端_第1张图片
linux服务器上部署flask后端_第2张图片
linux服务器上部署flask后端_第3张图片

5.后台运行

后台运行:

命令1(记录所有日志): nohup python -u udp_server.py > test.log 2>&1 &
命令2(只记录错误日志):nohup python -u udp_server.py >/dev/null 2>error.log 2>&1 &
命令3(不记录任何日志):nohup python -u udp_server.py >/dev/null 2>&1 &

想要想停止后台运行,就把该进程kill掉
命令解析:

nohup 不挂断的意思
python udp_server.py 服务器的启动脚本
-u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟
p.log 将输出日志保存到这个log中
2>1 2与> 结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
2>&1 换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
& 最后一个& ,代表该命令在后台执行

查看后台进程:
ps aux |grep python ps -ef | grep python
linux服务器上部署flask后端_第4张图片

6.报错

运行时显示端口占用

查看端口信息:
sudo netstat -tunlp
如现在8088端口被占用,杀死进程:
sudo kill -9 963
linux服务器上部署flask后端_第5张图片

服务器上 localhost:端口号 能访问接口,但 xx.xx.xx.xx: 端口号 不能访问

一开始以为是flask代码的问题,以为是要改成app.run(host=‘0.0.0.0’),因为出现的问题很像,最后发现是没在阿里云的访问规则中添加访问端口的访问规则,所以这个端口的接口都被阻挡了。
这是云服务器要加上的一个步骤

你可能感兴趣的:(总结,flask,linux,服务器,python,后端)