Flask+uwsgi+Nginx+Ubuntu部署-随手记

本文围绕Ubuntu 16.04系统,详细介绍Flask项目服务器部署流程。包括将项目上传服务器,进行软件源更换、软件包安装,创建虚拟环境与安装依赖包;接着进行项目数据库迁移,涵盖创建数据库、迁移数据等;还介绍了nginx的下载配置和uWSGI的安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目部署相关环境配置:https://blog.youkuaiyun.com/apollo_miracle/article/details/88062635

1 将项目上传服务器

系统:Ubuntu16.04

查看ubuntu版本:lsb_release -a

查看ubuntu位数:uname -a

注:一般64的系统都会带有X86_64 ,而32位的都不带,一般是i386或者i686等 

更换软件源

Ubuntu16.04 更换apt软件源:https://blog.youkuaiyun.com/apollo_miracle/article/details/109449229

Ubuntu16.04 更换pip3软件源:https://blog.youkuaiyun.com/apollo_miracle/article/details/109961369

安装软件包

默认安装有 python2.7 和 python3.5

查看python位数

# 进入python环境,导包
import platform
platform.architecture()
# ('64bit', 'ELF')

pip3命令

sudo apt install python3-pip

vim命令

sudo apt-get install vim

mysql命令

sudo apt-get install mysql-server

sudo apt-get install libmysqlclient-dev

启动和关闭mysql服务器:

service mysql start

service mysql stop 

安装虚拟环境

Ubuntu16.04下创建python的虚拟环境:https://blog.youkuaiyun.com/apollo_miracle/article/details/109962017

创建python3.5以上版本的虚拟环境:https://blog.youkuaiyun.com/apollo_miracle/article/details/109967748

安装依赖包

外网

可以连接外网的情况下,最好把使用的依赖包导出*.txt文件一个文件中,命令如下:

pip freeze > requirements.txt

安装命令为:

pip install -r requirements.txt

内网

如果是内网(无法连接外网),最好提前准备好所有的依赖安装包

在相同的环境下,使用以下命令进行快速下载

pip download -r requirements.txt

2 项目数据库迁移

忘记密码可以进行删除,重装:Ubuntu16.04彻底卸载MySQLhttps://www.cnblogs.com/mjhblog/p/10499772.html

flask数据库迁移问题解决:https://blog.youkuaiyun.com/apollo_miracle/article/details/110009326

2.1 创建数据库

create database database_name charset=utf8;

2.2 数据库迁移

  • 需要在manage.py中导入modelsform info import models,然后执行以下命令

python manage.py db init
python manage.py db migrate -m"initial"
python manage.py db upgrade

2.3 导入初始数据

执行导入初始分类的 SQL 语句

source 路径/info.sql 

2.4 Flask-SQLAlchemy安装及设置

  1. SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升
  2. SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作。flask-sqlalchemy 是一个简化了 SQLAlchemy 操作的flask扩展。
  3. 文档地址:http://docs.jinkan.org/docs/flask-sqlalchemy
  • 安装 flask-sqlalchemy
pip install flask-sqlalchemy
  • 如果连接的是 mysql 数据库,需要安装 mysqldb
pip install flask-mysqldb
  • 在安装flask-mysqldb的时候可能会报错:mysql_config not found

  • 解决如下,输入以下代码 :
sudo aptitude install libmysqlclient-dev

下载并配置nginx

作用

  • 采用 C 语言编写
  • 实现分流、转发、负载均衡

相关操作

  • 安装

sudo apt-get install nginx

配置文件

  • 编辑文件:/etc/nginx/sites-available/default
# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass 
upstream flask {
        server 127.0.0.1:5000;
        server 127.0.0.1:5001;
}
server {
        # 监听80端口
        listen 80 default_server;
        listen [::]:80 default_server;
 
        root /var/www/html;
 
        index index.html index.htm index.nginx-debian.html;
 
        server_name _;
 
        location / {
                # 请求转发到gunicorn服务器
                proxy_pass http://127.0.0.1:5000;
                # 请求转发到多个gunicorn服务器
                # proxy_pass http://flask;
                # 设置请求头,并将头信息传递给服务器端 
                proxy_set_header Host $host;
                # 设置请求头,传递原始请求ip给 gunicorn 服务器
                proxy_set_header X-Real-IP $remote_addr;
        }
}
  • 运行及停止

/etc/init.d/nginx start  #启动

​​​​​/etc/init.d/nginx stop  #停止

这时候在浏览器地址栏输入服务器的 ip 地址,看到下面的页面就表明 Nginx 已经启动了: 

安装 uWSGI

在安装 uWSGI 前,需要解决 uWSGI 的依赖问题,因为 uWSGI 是一个 C 语言写的应用,所以我们需要 C 编译器,以及 python 开发相关组件:

sudo apt-get install build-essential python-dev

sudo pip install uwsgi

到这,我们就安装好了 uWSGI

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值