Django+Nginx+uWSGI+Mariadb+Redis 部署完整版
程序员文章站
2022-03-04 13:33:57
...
Django+Nginx+uWSGI+Mariadb+Redis 部署完整版
1. 软件描述
Django:2.2
Nginx:1.14
uWSGI:2.0.19.1
Mariadb:10.4.21-MariaDB MariaDB Server
Redis:5.0.3
OS:CentOS:8.0
Python:3.6.8
2. 前提准备
2.1 数据库安装
- 安装Mariadb
准备一个文件mariadb_install.sh 把脚本放进去,然后执行
bash mariadb_install.sh 安装即可。
按照以上步骤安装完毕,然后再进行初始化数据库#!/bin/bash ############################################### 脚本说明 ############################################### # 所属任务:任务一: # 执行示例:bash mariadb_install.sh # 详细说明: ######################################################################################################## #任务操作 - 开始 yum remove MariaDB -y echo "--------步骤3:通过在线方式安装MariaDB--------" #创建YUM源文件 touch /etc/yum.repos.d/MariaDB.repo #将MariaDB YUM源配置信息写入文件 echo [mariadb] > /etc/yum.repos.d/MariaDB.repo echo name = MariaDB >> /etc/yum.repos.d/MariaDB.repo echo baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos8-amd64 >> /etc/yum.repos.d/MariaDB.repo echo module_hotfixes=1 >> /etc/yum.repos.d/MariaDB.repo echo gpgkey= https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB >> /etc/yum.repos.d/MariaDB.repo echo gpgcheck=1 >> /etc/yum.repos.d/MariaDB.repo #安装MariaDB yum install MariaDB-server -y #启动mariadb服务 systemctl start mariadb #查看MariaDB运行信息 systemctl status mariadb | head -10 #配置mariadb服务和开机自启动 systemctl enable mariadb
# 初始化数据库 mysql_secure_installation 按照提示信息输入密码,默认初始密码为空可以直接回车,这里需要自己读每一步的英文,反正就是设置密码,然后问你是否删除匿名用户什么的,按照提示进行初始化即可。
- 安装Redis
yum -y install redis
- 安装Python3.6
方法1:使用源码编译:centos8 python3.8.3的安装和虚拟环境的创建
方法2:使用在线安装:yum -y install python3 也可以使用源码编译和使用虚拟环境,在我的文章中有个文章可以看一下
2.2 项目准备
1.开源项目
2.或者自己整个项目也可以
2.3 服务器安装
yum -y install nginx
3 准备部署
- 安装uWSGI
pip3 install uwsgi
# 如果出错可能原因是没有安装以下软件
yum -y install python3-devel
yum -y install mysql-devel gcc gcc-devel
- 在项目目录中创建文件uwsgi.ini这个文件随意命名。
[uwsgi]
# 使用套接字主要是和nginx搭配
socket=127.0.0.1:8000
# 项目目录绝对路径
chdir = /var/www/my_notes
# 项目中wsgi.py所在的文件目录,相对路径
wsgi-file = my_notes/wsgi.py
# 进程数
processes = 4
# 线程数
threads = 2
# 展示项目状态
# stats = 127.0.0.1:9191
# 项目运行的pid主要是为了停止项目
pidfile=uwsgi.pidfile
# 运行日志
daemonize=uwsgi.log
# 是否开启主进程
master=true
- 配置nginx
# 主要改变这么多,其他的不用动
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
proxy_set_header Host $http_host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
location /static/ {
# 静态目录
alias /var/www/my_notes/static/;
}
启动命令
systemctl start mysql
systemctl start redis
# 开启项目
uwsgi --ini uwsgi.in
# 停止项目
uwsgi --stop uwsgi.pidfile
# 开启nginx
systemctl start nginx
推荐阅读
-
Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法
-
使用k8s部署Django项目的方法步骤
-
Vue项目部署的实现(阿里云+Nginx代理+PM2)
-
Vue-CLI 3.X 部署项目至生产服务器的方法
-
部署 apply plugin: 'realm-android'
-
Vue项目服务器部署之子目录部署方法
-
百度搜索引擎网页质量白皮书完整版正式上线 内容详情
-
2021年中国民办大学排行榜(完整版)-最新全国民办大学排名名单汇总
-
2021年四川本科大学最新排名(完整版)-四川各大学排名2021最新排名
-
全国高职院校排名2021最新排名(完整版)-全国大专院校排行榜2021