使用宝塔部署flask项目
在Python中,最常用的两个web开发框架就是django和flask了 会部署django,那么flask部署也是信手拈来 大部分的部署方式都是大同小异,都是使用uwsgi进行部署,然后ngi

使用宝塔部署flask项目

发布时间:2023-10-12 (2023-10-12)

在Python中,最常用的两个web开发框架就是django和flask了

会部署django,那么flask部署也是信手拈来

大部分的部署方式都是大同小异,都是使用uwsgi进行部署,然后nginx做反向代理

最后ssl的部署也是一样的道理,开443端口,把证书的位置写上去,将80重定向到443即可

本地准备

1. 代码准备

首先随便准备点模板文件,静态文件,保证本地开发能够正常访问

requirements.txt是必须的

pip freeze > requirements.txt

这里有个坑

如果你是用windows powershell导出的话,可能在服务器上打不开这个文件

这个地方需要留意一下

第二个就是要明确自己项目的启动文件,我的是app.py

来看看本地的效果吧

你随便写一个html网页,然后使用static里面的静态文件就行,只是一个部署测试

不用局限实际内容

2. 上传到代码仓库

这一步的操作就是使用git上传到代码管理仓库,这里我使用gitee(码云)为例

2.1 创建仓库

2.2 起别名

git remote add origin git@gitee.com:fengfengzhidao/flask_deploy.git

2.3 上传

git push origin master

服务器准备

这里的准备工作就比较多了

首先连上的你的服务器,不会的可以百度一下怎么连接云服务器

可以用秘钥登录,账号密码登录等

第二确保git软件能否使用,没有的话需要安装一下

第三,由于这个项目没有用数据库,所以数据库操作略过

1. 拉取代码

进入www/wwwroot目录下

git clone git@gitee.com:fengfengzhidao/flask_deploy.git

下载下来之后,就可以进入宝塔界面了

2. 宝塔创建flask项目

大家这里看图就很好理解了

3. 修改wsgi.ini

主要是将http改成socket

修改uwsgi.ini需要先将项目暂停

因为我们是要使用nginx做反向代理,托管静态文件,而不是使用uwsgi

当然,这里为了安全性可以将0.0.0.0改成127.0.0.1

如下

4. nginx配置

server {
    listen 80;  # 监听端口
    server_name www.lzysite.com;  # 域名
    location / {
          uwsgi_pass   127.0.0.1:8000;  # uwsgi启动的端口
          include uwsgi_params;  # 固定搭配
     }
  location /static {  # 静态文件转发路径
    alias  /www/wwwroot/flask_deploy/static;
  }
}

这个地方比较简单,如果这个地方弄完,你应该就可以访问你的域名看到这个项目了

如果出不来,去看看你的云服务器安全组,是不是把80端口给禁了

5. https部署

先去申请一张免费的ssl证书,下载的时候选择nginx

会有两个重要的东西

一个是xxx.key

一个是xxx.pem

然后在你的nginx中配置

server {
    listen 443;
    ssl_certificate /www/server/nginx/www.lzysite.com.pem;  # pem的路径
    ssl_certificate_key /www/server/nginx/www.lzysite.com.key;  # key的路径
    server_name www.lzysite.com;
    location / {
          uwsgi_pass   127.0.0.1:8000;
          include uwsgi_params;
     }
  location /static {
    alias  /www/wwwroot/flask_deploy/static;
  }
}

6. http跳转https

我们需要将80的请求跳转到443去,有很多种写法,其实都是重定向

server {
    listen 80;
    server_name www.lzysite.com;
    rewrite ^(.*)$ https://$host:443$1 permanent;  # 重定向到443  早期写法
    # return 301 https://$server_name$request_uri;  # 新写法
}
server {
    listen 443;
    ssl_certificate /www/server/nginx/www.lzysite.com.pem;  # pem的路径
    ssl_certificate_key /www/server/nginx/www.lzysite.com.key;  # key的路径
    server_name www.lzysite.com;
    location / {
          uwsgi_pass   127.0.0.1:8000;
          include uwsgi_params;
     }
  location /static {
    alias  /www/wwwroot/flask_deploy/static;
  }
}

致此,flask的项目部署就全部完成了,视频看完之后有没有豁然开朗呢

如果这个教程对你有帮助的话,不要忘了给我一个一键三连哦!