美文网首页Pythonweb相关
centos7.x下部署django项目superviosr+n

centos7.x下部署django项目superviosr+n

作者: 予风 | 来源:发表于2019-06-20 16:48 被阅读0次
    更新系统依赖包
    yum update -y
    
    安装依赖包
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-develgcc
    

    安装python3解释器

    下载python3.7安装包
    wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
    
    解压安装包
    tar -zxvf Python-3.8.5.tgz
    
    创建python解释器安装位置
    sudo mkdir /usr/local/python3
    
    cd 到解压包中编译python解释器
    ./configure --prefix=/usr/local/python3 --enable optimizations
    
    
    安装解释器
    make && make install 
    

    这里可能会报 ModuleNotFoundError: module named "_ctypes" make : *** [install] 错误1

    缺少安装依赖包解决办法:yum -y install libffi-devel 重新 make && make install

    创建软链接
    ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
    
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
    
    测试

    python3 -V
    pip -V

    image.png
    image.png

    Mysql配置安装

    下载
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    
    安装mysql-community-release-el7-5.noarch.rpm包
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    
    安装mysql
    sudo yum install mysql-server
    
    重置密码

    先修改权限问题:

    sudo chown -R openscanner:openscanner /var/lib/mysql
    

    重启服务:

    service mysqld restart
    

    重置登录密码

    mysql -u root
    
    mysql > UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User= 'root';
    
    FLUSH PRIVILEGES;
    

    环境配置

    方法一
    pip install pipenv
    

    切换到项目所在目录:

    pipenv shell  #会生成一个项目同名的依赖环境
    
    方法二
    pip install virtualenv
    
    pip3 install virtualenvwrapper
    
    find / -name 'virtualenvwrapper.sh'  #找到wrapper安装位置
    
    mkdir  /home/ .virtualenvs   #创建virtualenvwrapper存放位置
    

    编辑 . bashrc 文件末尾添加以下代码

    if
    ""
    exportWORKON_HOME=/home/.virtualenvs
    exportVIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source/usr/local/python3/bin/virtualenvwrapper.sh
    fi
    
    source .bashrc   #更新代码
    

    相关命令

    mkvirtualenv name -p python3   #创建环境
    
    rmvirtualenv name  #删除环境
    
    workon  name  #进入环境
    

    gunicorn安装配置

    安装
    pip install gunicorn
    
    配置

    项目settings.py

    install_app {
    """
    "gunicorn", 
    """
    }
    

    项目文件配置-gunicorn.py

    import multiprocessing
    bind = '0.0.0.0:8000' #监听端口
    workers = 10  
    worker_connections = 200  
    pidfile = '/root/DjangoBlog/logs/gunicorn.pid' #pid文件
    proc_name = "DjangoBlog"  
    reload = True   #重载
    errorlog = "/root/DjangoBlog/logs/guni.log"  #报错日志  
    loglevel = 'debug'  #debug等级
    
    

    Supervisor安装配置

    安装
    pip install supervisor
    

    配置文件生成

    mkdir -m 755 -p /etc/supervisor/
    
    mkdir -m 755 conf.d
    
    echo_supervisord_conf > /etc/supervisor/supervisord.conf
    
    配置需要启动的项目
    cd   /etc/supervisor/conf.d
    

    创建DjangoBlog.conf文件

    [program:Dblog] # 程序名字:启动/停止app_name部分
    directory=/root/DjangoBlog #项目目录
    command = /home/.virtualenvs/Dblong/bin/gunicorn  -c /root/DjangoBlog/bin/guniconf.py  DjangoBlog.wsgi:application
    #程序运行命令配置了gunicorn
    autostart = true  
    autorestart = true #程序自动重启
    user=root   #用户
    redirect_stderr = true  
    stdout_logfile = /root/DjangoBlog/logs/robot.log
    stderr_logfile=/root/DjangoBlog/logs/err.log
                                                      
    
    运行
     supervisord -c /etc/supervisor/supervisord.conf
    
    相关命令

    ​ 启动程序

    • supervisorctl start program_name  
      

      关闭程序

    • supervisorctl stop program_name  
      
    • supervisorctl shutdown
      

      查看运行

    • supervisorctl status
      

    Nginx相关配置

    nginx安装

    方法

    下载

    wget http://nginx.org/download/nginx-1.9.9.tar.gz 
    

    解压

    tar -zxvf nginx-1.9.9.tar.gz 
    

    编译:cd 到解压目录下

    ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tem/nginx/client --http-proxy-temp-path=/var/tem/nginx/proxy --http-fastcgi-temp-path=/var/tem/nginx/fcgi --with-http_stub_status_module
    

    安装

    make && make install
    

    方法二

    sudo apt-get install nginx   #安装
    sudo service nginx start  #运行
    

    启动

    nginx -c /etc/nginx/nginx.conf
    
    报错1[emerg] getpwnam("nginx") failed
    解决
    useradd -s /sbin/nologin -M nginx
    
     id nginx 
    
    报错2 [emerg] mkdir() "/var/temp/nginx/client" failed (2: No such file or directory)

    解决

    sudo mkdir -p /var/tem/nginx/client
    

    nginx命令

    service nginx start   #启动
    
    service nginx stop    #停止
    
    service nginx reload  #重启
    
    nginx -s reload  #重启
    
    nginx -t # 测试
    

    测试是否安装成功:

    nginx -t
    
    image.png

    至此nginx安装完成,开始相关配置

    nginx配置

    cd nginx安装目录:

    如果不确定nginx安装目录nginx -t可以看到the configuration...nginx.conf即配置文件所在位置,安装方法不同文件保存位置也会发生变化

    image.png
    由此可以看出nginx配置文件在etc/nginx下面的
    cd /etc/nginx/
    

    备份nginx配置

    cp nginx.conf nginx.conf.cp
    

    编辑配置文件

    vim nginx.conf
    

    配置内容

       """"
       #部署需要配置的部分
       server {
            listen       80; #监听80端口请求
    
            server_name  ip ;  #这里配置你的ip
            location / {
                    proxy_pass http://127.0.0.1:8000; #将xx端口转发nginx
                    proxy_set_header Host $host;  #请求头
                    proxy_set_header X-Real-IP $remote_addr;  #将项目请求ip转发到你的ip上
                    }    #这段写法无需更改复制即可
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
            location /static {
              alias /root/DjangoBlog/collectedstatic;  #配置静态文件位置
    
            }
    
    """"
    

    配置完成保存退出

    重载配置文件:

    nginx  -s reload
    

    至此整个项目配置完成

    相关文章

      网友评论

        本文标题:centos7.x下部署django项目superviosr+n

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