美文网首页Django来敲门
项目部署[UWSGI+NGINX]

项目部署[UWSGI+NGINX]

作者: 不一样的丶我们 | 来源:发表于2017-12-22 22:23 被阅读64次

    通过UWSGI服务器部署Django项目, 通过nginx进行反向代理


    • 连接远程服务器,确保工作目录是存在的,同时工作目录里面虚拟环境也是存在的
      • 工作目录里面要有虚拟环境文件夹 上传专用的文件夹 工作文件夹
    • 获取django项目的虚拟环境下面的第三方的安装包
      • 在window命令窗口下进入开发环境的虚拟环境,然后进入项目所在目录
        • 执行pip freeze > pkg.txt命令收集虚拟环境下面的安装包
    • 运行FlashFXP,连接远程服务器
      • 输入远程服务器的ip地址 账号 密码
    • 用FlashFXP把本地项目文件夹上传到远程服务器
      • 上传项目之后 执行命令`cp -rf mysit/(项目名) /home/worker( 工作文件夹)
    • 进入工作文件夹 进入项目
      • 执行 pip install -r pkg.txt 安装第三方模块
    • 执行pip install uwsgi 安装uwsgi服务器
    • 执行touch uwsgi.ini 创建一个uwsgi服务器的配置文件
      • vi uwsgi.ini
    # 添加配置选项
    [uwsgi]
    # 配置和nginx连接的socket连接
    socket=127.0.0.1:8000
    # 配置项目路径
    chdir=/home/worker/mysite #自己工作目录下面的项目文件夹
    # 配置wsgi接口模块文件路径, 相对路径
    wsgi-file=mysite/wsgi.py
    # 配置启动的进程数量
    processes=4
    # 配置每个进程启动的线程的数量
    threads=2
    # 配置启动管理主进程
    master=True
    # 配置存放主线程编号的文件
    pidfile=uwsgi.pid
    # 配置dump日志路径
    daemonize=uwsgi.log
    
    :wq!   # 保存退出
    
    • 执行命令uwsgi --ini uwsgi.ini 启动uwsgi.ini文件
    • 执行命令ps -ef|grep uwsgi 查询uwsgi是否正常启动
    • 然后通过nginx进行反向代理
      • 执行命令apt-get install nginx 安装nginx
      • 如果是普通的用户 sudo 安装
    • 然后进入/etc目录下的nginx目录
    • 执行命令vi nginx.conf 配置nginx文件
    # 第一行修改user为root用户
    # 在include /etc/nginx/sites-enabled/*文件下配置
    server {
      # 监听80端口,服务器启动的时候就可以监听这个端口接收到的请求
      listen 80; 
      # 配置 服务器名称, 一般指定ip地址即可
      server_name 192.168.10.51;
      location / {
        # 指定接收到的请求中可以包含的是数据的类型
        include uwsgi_params;
        # 指定将请求反向转发到后端的某个服务器~ uwsgi服务器的socket选项
        uwsgi_pass 127.0.0.1:8000;
      }
    }
    
    • 在本地服务器通过ip地址访问下主机看是否正常启动了
    • 用nginx配置静态服务器
    • 执行mkdir static_file创建静态文件夹来手机静态文件
    • 进入项目文件夹执行vi settings.py配置静态文件
    # 在settings.py文件的最后面配置静态路径
    STATIC_ROOT = "静态文件夹所在的路径"
    :wq!保存文件
    
    • 执行命令python manage.py collectstatic把静态文件采集到STATIC_ROOT指定的路径
    • 执行命令vi nginx.conf再nginx文件里面配置静态文件
    # 在上面的location下面配置static路径
    location /static {
      # 配置静态资源访问处理 如果客户端请求/static/...就自动转发/home/...static_file/..
      alias /home /worker/mysite/static_file/; # 静态文件夹所在的路径
    }
    :wq! 保存退出
    
    • 执行命令nginx -s reload 重新加载nginx
    • 在浏览器中重新加载访问 项目运行正常
    • 自此项目部署成功

    相关文章

      网友评论

        本文标题:项目部署[UWSGI+NGINX]

        本文链接:https://www.haomeiwen.com/subject/aoszwxtx.html