python flask虚拟环境 uwsgi nginx Supervisor 宝塔面板部署

安装部署对应的python版本

1.安装虚拟环境插件virtualenv

pip install virtualenv

2.创建虚拟环境

virtualenv /www/wwwroot/项目/env

virtualenv + 路径

3.激活虚拟环境

source /www/wwwroot/项目/env/bin/activate

4.退出虚拟环境的指令

deactivate

这里不用管,需要退出的时候再使用


部署flask项目所需模块和文件

1.本地到flask项目路径下使用终端

pip freeze requirements.txt

2.导出所需模块

把requirements.txt文件上传项目根目录

安装所需模块:

pip install -r /www/wwwroot/项目/requirements.txt

3.把项目文件上传到项目目录下,然后使用

python app.py

4.运行访问服务器ip加端口测试模块导入正常,ctrl+c退出

部署安装uwsgi和nginx配置

1.安装uwsgi

pip install uwsgi

2.卸载指令

pip uninstall uwsgi

安装后输入uwsgi测试是否弹出信息

3.项目路径下创建uwsgi.ini配置文件写入以下内容并保存

[uwsgi]
#uwsgi启动时,所使用的地址和端口(这个是http协议的,也可以使用socket协议,将http改成socket)
http=0.0.0.0:5000
#指向网站目录
chdir=/www/wwwroot/项目
#python 启动程序文件
wsgi-file=app.py``> ``
#回调的app对象
callable=app
#处理器数
processes=4
#线程数
threads=2

4.CD到项目路径:/www/wwwroot/项目 启动uwsgi

uwsgi --ini uwsgi.ini &

5.访问服务器ip加端口测试是否正常使用uwsgi,退出uwsgi使用

sudo lsof -i:5000

6. 查看5000端口所在进程id 然后使用

kill -9 进程id

多个空格隔开然后回车杀死


部署nginx

宝塔面板部署就不说了,安装好nginx和Supervisor进程守护

nginx配置:宝塔面板-软件商店-已安装-nginx设置-配置修改-最后面加上:

1.添加 uWSGI 配置这里默认80端口没带证书

server
{
    listen 80;
    server_name baidu.com; #把这个域名换成你自己的

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
    }
    
    # 可选项:设置静态文件目录
    location /static {
        alias /www/wwwroot/项目/static;
    }
    }

}

2.如果需要带证书可以https访问的用以下配置

#下面为可以访问80端口和https443端口的配置
server {
	listen 80;
	server_name baidu.com;#换成自己的
	return 301 https://$host$request_uri;
}
server {
	listen 443 ssl;
	server_name baidu.com;#换成自己的
	ssl_certificate /path/to/your/certificate.crt;#这里可以是证书crt和pem后缀名
	ssl_certificate_key /path/to/your/private_key.key;#这里是证书key后缀名
	location / {
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:5000;
	}
	# 可选项:设置静态文件目录
	location /static {
		alias /www/wwwroot/项目/static; #写自己的static静态文件路径也可以不要
	}
}
  • 然后保存重启nginx,启动uwsgi:

    uwsgi --ini uwsgi.ini &
    

    测试域名是否正常访问,这里已经反代不需要加端口

最后一步配置Supervisor

1.在项目根目录下创建一个start.sh文件写入以下保存

#激活虚拟环境
source /www/wwwroot/项目/env/bin/activate
#启动uWSGI应用程序
uwsgi --ini /www/wwwroot/项目/uwsgi.ini
  • 宝塔面板-软件商店-已安装-最后一步配置Supervisor设置-添加守护进程:

  • 启动用户自己选,我使用默认的root,运行目录:/www/wwwroot/项目

  • 启动命令:/www/wwwroot/wiki/start.sh 然后保存运行

  • 如果运行报错:请检查以下sudo lsof -i:5000 端口是否被占用,还是一样杀死进程在启动即可

  • 整个项目的操作都是在虚拟环境下执行,甚至用不到退出虚拟环境指令

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值