uwsgi和nginx进行部署

本文转载https://blog.csdn.net/weixin_46237597/article/details/114110109

首先我声明我本人用的是阿里云的服务器。

  • 环境设置

    地址
    ubuntu16.04 安装python3.6踩坑: https://blog.csdn.net/qq_42693848/article/details/88900553
    ubuntu16安装mysql8.0: https://blog.csdn.net/yzf279533105/article/details/105152525
    ubuntu 16.04安装redis的两种方式(apt和编译方式)和卸载: https://blog.csdn.net/Mikeoperfect/article/details/79468944
    Ubuntu16.04 下安装虚拟环境: https://blog.csdn.net/qq_41621362/article/details/89606522

    Ubuntu 16.04 Python 3.6 pip 安装mysqlclient:
    安装mysqlclient一般情况下会出现一些比较麻烦的bug
    如果出来bug可以参考:https://blog.csdn.net/qq_28359387/arti:cle/details/79901971

  • 在虚拟环境中下载你所需要的依赖

    可以把所需要的依赖打包好,批量下载
    打包命令:
    pip freeze>request.txt # request.txt打包好的文件名

    批量下载依赖:
    pip install -r request.txt -i https://pypi.douban.com/simple # i xxxx 豆瓣源

    如果批量下载的途中有依赖下载失败,可以先打开request.txt文件,把该依赖删掉,批量下载完了。切记把刚才删除的依赖在手动下载了

  • 打包vue文件

    在vue终端:
    npm run build # vue会生成一个dist的文件
    现在就可以创建一个目录,然后把Django项目还有dist文件都放在里面

    可以先跑Django项目确保本地的代码是没有问题的

  • 使用uwsgi来部署项目

    首先使用pip下载uwsgi包
    pip install uwsgi

    在刚才放Django项目还dist文件的同级目录下创建一个文件,用来存放uwsgi日志等文件
    cd到刚才创的文件,vi uwsgi.ini进去并且把下面的代码复制到里面:

  [uwsgi]
  socket=127.0.0.1:3399    # 使⽤Nginx连接时使⽤,Django程序所在服务器地址和端⼝号
  # http=172.16.240.177:8000  # 如果uwsgi接收到的是http请求就用这个端口号,否则用上面那个端口号
  chdir=/home/peter/opwf_program/opwf_project/opwf  # 项⽬⽬录绝对路径

  wsgi-file=opwf/wsgi.py  # 项⽬中wsgi.py⽂件的⽬录,相对于项⽬⽬录

  processes=4  # 进程数(机器核数的1倍)

  threads=50  # 线程数

  master=True  # uwsgi服务器的⻆⾊

  pidfile=uwsgi.pid  # 存放进程编号的⽂件

  daemonize=uwsgi.log  # ⽇志⽂件

  virtualenv=/home/peter/.virtualenvs/opwfenv  # 指定依赖的虚拟环境

  # 记得修改属于你的一些路径和端口
  • 配置nginx

    基于APT源安装nginx
    sudo apt-get install nginx

    安装好的文件位置(默认)

    /usr/sbin/nginx:主程序
    /etc/nginx:存放配置文件
    /usr/share/nginx:存放静态文件
    /var/log/nginx:存放日志

    安装完成后在 /etc/nginx/conf.d 下 vi django.conf 文件创建并打开django.conf

  # **配置nginx⾥的django配置**
   server {
  	 listen 8899;  # Django的端口号
  	 server_name 172.16.240.177;
  	 
  	 location / {
  	 include uwsgi_params;
  	 uwsgi_pass 127.0.0.1:3399;  # 这里对应的是uwsgi.ini文件中socket
  	 uwsgi_ignore_client_abort on;
  	 }
  } 

  # **配置nginx⾥的vue配置** 
   server {
  	 listen 8888; #1.你想让你的这个项⽬跑在哪个端⼝
  	 server_name 172.16.240.177; #2.当前服务器ip
  	 location / {
  	 root /home/peter/opwf_program/opwf_vue/dist; #3.dist⽂件的位置(我是直接放在home⽬录下了)
  	 try_files $uri $uri/ /index.html; #4.重定向,内部⽂件的指向(照写)
  	 }
   }
  • 启动nginx和uwsgi

    开启nginx : systemctl start nginx.service
    关闭nginx: systemctl stop nginx.service
    查看开启的nginx:ps -ef|grep nginx
    重启nginx : service nginx restart
原文地址:https://www.cnblogs.com/kaka007/p/14451234.html