1. 介绍

  • vue+nginx+uwsgi+socket+django
  • 本文部署基于ubuntu20.04
  • 本文适用于ubuntu16.04以上的版本参考
  • 以root权限部署
  • vue已经打包好,所以只能借鉴,无法使用我的

2. 部署

部署步骤

# 切换到root(确保root用户安装了虚拟环境,如果不怕环境被污染,使用本机的python环境也行,不使用root,会一大堆无权限,无法进行)
su - root
# 创建虚拟环境
mkvirtualenv -p python3.6 nginx_t2
# clone 项目到/opt 
cd /opt
git clone https://gitee.com/yqmc/mm.git
# 切换(生成)虚拟环境
workon nginx_t2
# 安装模块
pip3 install -r requirement.txt -i https://pypi.douban.com/simple
pip3 install uwsgi -i https://pypi.douban.com/simple
# 本地启动,测试
python3 manage.py runserver
# 把最后一行,路径注释,解开
vim mmapi/settings.py
# 收集
python3 manage.py collectstatic
# 查看当前使用的虚拟环境的位置
cdvirtualenv
pwd
# uwsgi配置(配置在后面)
vim uwsgi.ini
# socket + 后台启动(无法直接访问,需要nginx做反向代理)
uwsgi --ini uwsgi.ini
# nginx配置(配置在后面)
vim /opt/tnginx/conf/nginx.conf
反向/正向代理
# nginx启动
nginx

uwsgi.ini

# uwsgi.ini 配置
# mysite_uwsgi.ini file
[uwsgi]
# 填写你项目的绝对路径,第一层(项目的路径)
chdir           = /opt/mm/mmapi
# 找到django的那个wsgi.py文件
# 根据上面一条参数,的相对路径来写(wsgi的路径)
module          = mmapi.wsgi
#虚拟环境的绝对路径(虚拟环境的路径)
home            = /root/.virtualenvs/nginx_t2
# process-related settings
# master
master          = true
# 根据你的cpu核数来定义这个参数,启动多少个进程
processes       = 4
# 指定你的django启动在什么地址上,并且是什么协议
# 如果你用了nginx,进行反向代理,请用socket参数
socket          = 127.0.0.1:9000
# 如果你没用nginx反向代理,想要直接访问django用这个参数
#http            = 127.0.0.1:9000
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
# 热加载(自动更新)
py-autorezload   = 1
# 后台运行并记录日志(如果是docker,这个改成False,不然会导致docker启动失败)
daemonize = uwsgi.log
# pid
pidfile = uwsgi.pid

nginx.conf

#监听vue的
server {
    listen 80;
    #localhost---本机外部暴露地址
    server_name 127.0.0.1;
    location / {
    root   /opt/mm/mmweb/dist;
    index  index.html;
    #解决刷新出现404问题
    try_files $uri $uri/ /index.html;
    }
}
#预留钩子,做负载均衡使用
upstream mydjango {
        server 127.0.0.1:9000;
    }
#反向代理的/django静态文件,8500访问
server {
    listen 8000;
    #localhost ----10.0.0.129
    #10.0.0.129:8000/t1
    server_name 127.0.0.1;
    location / {
       uwsgi_pass mydjango;
       include uwsgi_params;
}
   #django静态文件代理 10.0.0.1/static/...
    location /static {
        #root 网页根目录
        #alias别名,/opt/xxx-->django静态文件收集的路径
        alias /opt/static;
    }
}

try_files $uri $uri/ /index.html;介绍

详解https://blog.csdn.net/qq_52385631/article/details/123905925

uwsgi常用命令

启动:
uwsgi  --ini  uwsgi.ini

停止:
uwsgi --stop uwsgi.pid

重启:
uwsgi --reload uwsgi.pid

nginx常用命令

常用命令
# 关闭防火请,不然nginx启动,无法访问
iptables -F

(1) 启动:
nginx

(2) 测试Nginx配置是否正确:
nginx -t

(3) 平滑重启,重新读取nginx配置文件
nginx -s reload

(4) 停止nginx:
nginx -s stop

Logo

前往低代码交流专区

更多推荐