linux服务器上部署flask后端

文章详细介绍了如何导出项目依赖、在服务器上创建和激活Python虚拟环境、配置防火墙及阿里云安全组规则以开放端口,以及如何后台运行Python服务并管理日志。同时,提到了解决端口占用和远程访问问题的方法。

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.阿里云服务器开放端口(一定要开放!!)

云服务器控制台-》实例-》管理-》安全组-》配置规则-》访问规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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
在这里插入图片描述

6.报错

运行时显示端口占用

查看端口信息:
sudo netstat -tunlp
如现在8088端口被占用,杀死进程:
sudo kill -9 963
在这里插入图片描述

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值