Python3+Django+uwsgi+Nginx部署详解

部署前依赖/环境安装

# 启动前,先进入Django项目中,执行一下内容,确保Django所需要安装包均已安装 
python3 manage.py runserver 0.0.0.0:8000   # 将所需要的依赖包安装到机器上
# 测试无问题后即可退出

安装 Python3 + Django + uwsgi + Nginx

# 安装python3 环境
yum installl python3  # centos 中默认python版本为3.6.8,可以直接yum安装

# 安装Django 环境
pip3 install django 	# 直接pip安装Django即可

# 安装uwsgi 环境
yum install  gcc-c++ wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libxml*  -y   # 安装gcc编译环境
yum install python3-devel libevent-devel libjpeg-devel -y # 安装所需依赖包
python3 -m pip install --upgrade pip # 升级pip
pip3 install uwsgi	# 以上工作完成后直接执行pip安装即可

# 安装Nginx 环境
yum install nginx # 直接yum安装即可

uwsgi + nginx 配置文件修改

uwsgi 配置编写

vim uwsgi.ini   # 在项目中,编写uwsgi配置文件(建议放在manage.py同层目录下)
[uwsgi]
# 项目主目录(不要放到root或其他有限制目录下面)
chdir = /var/html/XXX(项目目录)/	
master = true
# 指定wsgi.py文件
wsgi-file = XXX(项目目录)/wsgi.py
# 指定socket端口
socket = :8080
# 开启线程数量
processes = 5
# 指定进程pid存放地址
pidfile = /var/html/XXX(项目目录)/uwsgi.pid
vacuum = true
# log文件存放地址
daemonize = /var/log/uwsgi.log

Nginx 配置编写

# yum安装的nginx,默认配置文件在/etc/nginx/nginx.conf,里面已有备份,可以直接进行修改
vim /etc/nginx/nginx.conf
# 配置nginx.conf配置文件,nginx监听端口,根据实际需求进行更改,删掉原有location / 增加如下内容和静态文件地址即可
server {
	listen       80;
	listen       [::]:80;
  
...
...
    
  location / {
    include uwsgi_params;    # 使用uwsgi服务器。
    uwsgi_pass 127.0.0.1:8080;    # 把浏览器发来的请求转发到8080端口,而uwsgi也正在监听8080端口,所以就实现了nginx与uwsgi的通信。
    uwsgi_read_timeout 30;   #链接超时时间
  }
  
...
...
    
  location /static {
    # 指定静态文件存放的目录
    root /var/html/配置文件里面的static/;	# Django中一般写到项目地址即可(根据Django配置走就好)
    break;
  }
}

启动前准备

# 此项目中使用了simpleui和import_export,一定要手动安装下
pip3 install django-import_export
pip3 install simpleui

# 项目中因使用了开源 simpleui ,需要执行如下命令,将css,js文件汇总放到Django配置文件中配置的位置
python3 manage.py collectstatic  # 一定要执行此命令

启动项目

# 启动uwsgi
# 进入Django项目中,执行
uwsgi --ini uwsgi.ini
# 启动 nginx
systemctl start nginx

# 停止nginx
systemctl stop nginx
# 停止 uwsgi
uwsgi --stop uwsgi.pid

亲测无问题,如有问题,请留言!
// 注意 如果有静态页面,一定修改配置文件,并授给nginx访问权限,禁止放到root目录下

你可能感兴趣的:(python,linux,python,django,nginx)