Flask——部署

CentOS7下Nginx+uwsgi部署Flask

本文采用CentOS7下用Nginx和uwsgi部署的方式

一、安装Python环境依赖

1、在本地的虚拟环境中,项目根目录下,执行命令收集所有包

pip freeze > plist.txt

2、上传项目到服务器的目录

scp 项目名 root@39.107.86.xxx:~

3、服务器安装Python虚拟环境

安装并创建虚拟环境猛击这里,如果已有则跳过此步

mkvirtualenv [虚拟环境名称]  # 创建虚拟环境
workon [虚拟环境名称]  # 切换到虚拟环境中

4、安装Python包

pip install -r plist.txt

二、uwsgi配置

uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器

uWSGI代码完全用C编写

1、安装uwsgi

pip3 install uwsgi

2、配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置

[uwsgi]

socket = 127.0.0.1:5000
; 启动程序时所使用的地址和端口,通常在本地运行flask项目,地址和端口是127.0.0.1:5000,
chdir = /root/NewsProject/app
; 项目的目录
wsgi-file = run.py
;flask程序的启动文件,通常在本地是通过运行
callable = app
;程序内启用的application变量名
processes = 4
;开启进程数
threads = 2
;每个进程开启线程数
stats = 127.0.0.1:9191
;获取uwsgi统计信息的服务地址
  • 启动:uwsgi --ini uwsgi.ini
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi --reload uwsgi.pid

三、nginx的配置

1、安装猛击这里

2、修改nginx的配置文件

vim /etc/nginx/conf.d/default.conf

3、配置新的location项,指向uwsgi的ip与端口

location /toutiao/ {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
uwsgi_param UWSGI_PYHOME /root/.virtualenvs/flask-news;
uwsgi_param UWSGI_CHDIR /root/NewsProject;
uwsgi_param UWSGI_SCRIPT manage:app;
}

4、配置静态文件位置

location /static/ {
alias /var/www/flask-news/static/;
}

部分参考于:这里

 

转载于:https://www.cnblogs.com/x54256/p/8404074.html

### 部署Flask项目到阿里云服务器 #### 准备工作 为了成功部署Flask应用至阿里云服务器,需完成一系列准备工作。这包括但不限于购买配置好云服务器实例,确保选择了合适的操作系统版本,如Ubuntu 22.04 LTS。对于已有实例的情况,在控制台中的资源管理板块下的云服务器ECS部分找到对应的实例与镜像选项来访问所需实例;如有必要更改操作系统,则应先暂停该实例再执行变更操作[^2]。 #### 远程连接设置 利用Workbench工具实现对阿里云服务器的安全远程登录,期间会提示输入root账户及其对应密码以验证身份合法性。此步骤至关重要,因为后续所有的命令行指令都将在此环境下运行。 #### 安装依赖软件包 在正式开始之前,还需确认开发机器上已经安装了必要的客户端程序——Git用于版本控制系统以及Python解释器等基础组件。这些前期准备有助于简化整个部署流程,保障项目的顺利迁移。 #### 创建虚拟环境 进入根目录后建立专门存放当前Web应用程序所需的库文件夹`my_flaskProject`,通过如下命令构建独立于全局环境之外的新Python虚拟环境: ```bash mkdir my_flaskProject && cd my_flaskProject python3 -m venv my_venv source ./my_venv/bin/activate ``` 上述代码片段展示了如何激活新创建的虚拟环境以便接下来能够安全地安装特定版本的应用依赖项而不影响其他可能存在的Python项目。 #### Flask应用的具体部署过程 一旦完成了以上各阶段的任务之后就可以着手处理实际业务逻辑即编写或上传现有的Flask web app源码至目标位置。通常情况下建议采用git clone的方式拉取远端仓库最新版代码,接着按照官方文档说明调整相应的参数设定比如数据库链接字符串之类的敏感信息。 #### Web服务器配置 为了让外部网络请求能被正确转发给后台监听的服务进程,还需要额外搭建一层反向代理服务器Nginx作为前端入口接收HTTP(S)流量将之分发出去。具体做法涉及编辑站点可用性的配置文件/etc/nginx/sites-available/default加入location路径映射规则指向本地socket地址或者TCP端口从而使得静态资源加载正常运作起来[^1]。 #### 启动服务 最后一步就是让所有组件协同工作起来了。这里推荐使用Supervisor这类轻量级守护进程管理工具监督子进程中可能出现异常退出的情形及时重启恢复常态。当然也不要忘了开启Nginx本身使之处于活动状态随时响应来自公网用户的访问需求: ```bash sudo systemctl enable --now supervisor nginx ``` 这样就实现了持续在线提供API接口调用的能力,同时也提高了系统的稳定性可维护性水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值