• 部署django项目的总结Nginx+uwsgi+django


    Python环境的搭建

    安装python3

    配置好Python库环境

    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

    下载安装包解压

    cd #回到用户目录
    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
    tar -xvJf  Python-3.7.0.tar.xz

    编译安装

    mkdir /usr/local/python3 #创建编译安装目录
    cd Python-3.7.0
    ./configure --prefix=/usr/local/python3
    make && make install

    创建软连接

    ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
     
    执行完上述步骤就可以试试是否成功了
    python3 -V
    pip3 -V
    
    
    

    创建干净的虚拟python环境

    
    
    #安装virtualenv
    pip3 install virtualenv
    
    #创建目录
    mkdir Myproject
    cd Myproject
    
    #创建独立运行环境-命名
    virtualenv --no-site-packages --python=python3  venv#得到独立第三方包的环境,并且指定解释器是python3
    
    #进入虚拟环境
    source venv/bin/activate#此时进入虚拟环境(venv)Myproject
    
    #安装第三方包
    (venv)Myproject: pip3 install django==1.9.8
    #此时pip的包都会安装到venv环境下,venv是针对自己要部署的项目创建的
    
    #退出venv环境
    deactivate命令
    
    #附上批量导出和安装依赖包的命令
    pip freeze > pkg.txt
    #将当前生产环境下 Python 的模块收集起来存放到 pkg.txt 文件里
    pip install -r pkg.txt
    #在生产环境下的需要模块全部安装

    nginx & uwsgi

    安装配置uwsgi

    python3 -m pip install uwsgi

    uwsgi --version查看uwsgi的版本

    在项目文件里创建uwsgi.ini文件,编辑文件设置uwsgi的属性

    #添加配置选择
    [uwsgi]
    #http=:18123 #这个是不使用nginx时候的配置
    
    #配置和nginx连接的socket连接
    socket=0.0.0.0:8002
    
    #配置项目路径,项目的所在目录
    chdir=/var/www/html/CLPAproject/CLPA_project
    
    #配置wsgi接口模块文件路径
    wsgi-file=CLPA_project/wsgi.py
    
    #配置启动的进程数
    processes=4
    
    #配置每个进程的线程数
    threads=2
    
    #配置启动管理主进程
    master=True
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    
    #配置存放主进程的进程号文件
    pidfile=/var/www/html/CLPAproject/Logs/uwsgi.pid
    
    #配置dump日志记录
    daemonize=/var/www/html/CLPAproject/Logs/uwsgi.log
    
    #配置启动django项目的虚拟环境的地址
    virtualenv=/var/www/html/CLPAproject/CLPAenv

    启动uwsgi

    cd #uwsgi.ini文件所在路径
    uwsgi  --ini  uwsgi.ini

    显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功。

    通过 ps -ef|grep uwsgi 查看确认是否uwsgi启动。

    停止运行uwsgi,通过包含主进程编号的文件设置停止项目uwsgi --stop uwsgi.pid

    重启uwsgi uwsgi --reload uwsgi.pid

    安装nginx

    官网下载.tar.gz安装包,地址:https://nginx.org/en/download.html

    
    
    # nginx的安装目前我并没有实际操作,具体操作问题遇到实际问题时 再补充,安装nginx之前先安装依赖
    
    wget -c https://nginx.org/download/nginx-1.17.3.tar.gz
    
    # 解压
    tar -zxvf nginx-1.17.3.tar.gz
    cd nginx-1.17.3
    ./configure
    make
    make install
    
    # 查找安装路径
    whereis nginx
    
    cd 到安装目录
    # 启动,停止,重启
    ./nginx
    ./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
    ./nginx -s quit #:此方式停止步骤是待nginx进程处理任务完毕进行停止。
    ./nginx -s reload
    
    #查询nginx进程
    ps -aux|grep nginx
    
    # 设置开机自启动
    vi /etc/rc.local
    /usr/sbin/nginx
    
    
    
    修改nginx的配置文件
    配置文件上边还有一些内容没有放这,我也并没有配置,现在配置的这些内容需要放在http对应的大括号内
    
    #nginx反向代理uwsgi
    server {
        # 对应的django的uwsgi使用的端口
        listen  18123;
    
        # 服务器的ip
        server_name  xxx.xxx.xxx.xxx;
    
        # 配置字符类型
        charset utf-8;
        client_max_body_size 100M;
    
        access_log /tmp/bonker.log;
    
        location / {
           #nginx自带ngx_http_uwsgi_module模块,起到nginx和uwsgi交互作用
            #通过uwsgi_pass设置服务器地址和协议,讲动态请求转发给uwsgi处理
            # uwsgi_params这个文件一般和nginx.conf在同一级
            include  /etc/nginx/uwsgi_params;
            uwsgi_pass 0.0.0.0:18120;
        }
    
    /***************下面的配置目前没有使用*****************/
      #nginx处理静态页面资源
      location /static{
          alias /var/www/html/CLPAproject/static;
        }
    
      #nginx处理媒体资源
       location /media{
           alias /var/www/html/CLPAproject/media;
        }
    
        #error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    修改完配置文件之后重启nginx
    目前我是用的nginx启动命令是
    sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
  • 相关阅读:
    希腊字母
    word写文章时公式编号~~以后不要再浪费时间在这些事情上
    网络中的一些基本概念~~但很重要
    导师教给我们的~~
    ONE工具配置
    java环境变量设置
    【转载】UnicodeEncodeError: 'gbk' codec can't encode character 'xa0' in position XXX
    python中yield的用法详解——最简单,最清晰的解释【转载】
    python-乌龟和鱼游戏(面向对象实例)
    centOS7 使用yum命令报错:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
  • 原文地址:https://www.cnblogs.com/wangpanger/p/11396420.html
Copyright © 2020-2023  润新知