美文网首页
云服务器uWSGI+Django+nginx部署项目

云服务器uWSGI+Django+nginx部署项目

作者: 非问 | 来源:发表于2018-05-12 17:12 被阅读0次

    一.相关知识了解

    Django

    一个基于python的开源web框架,请确保自己熟悉它的框架目录结构。
    

    uWSGI

    一个基于自有的uwsgi协议、wsgi协议和http服务协议的web网关
    

    nginx

    常用高性能代理服务器
    

    二.服务器环境配置

    升级更新apt-get

    apt-get update

    查看python版本

    python -V

    如果python版本过低就升级python

    下载python安装包
    解压
    tar -zxvf Python-3.6.1.tgz
    进入解压后的目录
    cd Python-3.6.1
    编译
    make
    安装
    make install
    

    配置pip 一般不需要

    apt-get install python-pip
    apt-get install python3-pip

    查看pip安装的文件

    pip list

    手工安装相关环境

    安装django

    pip install django

    指定版本安装

    pip install django==1.11

    安装pymysql

    pip install pymysql

    自动化安装

    拾取本地模块

    pip freeze > piplist.txt

    将文件上传到服务器,确认环境安装成功,pip安装成功
    执行安装命令

    pip install -r piplist.txt

    数据库安装[安装mysql数据库]

    apt-get install mysql-server

    三.项目操作

    1.打包上传项目文件
    解压项目
    unzip ***.zip
    tar -xvcf ***.tar.gz
    

    2.连接数据库

    进入项目/settings.py修改配置文件,确认账号+密码和服务器内一致

    创建数据库,名称需要和settings.py中的数据库名一致
    如果数据库有修改先同步脚本

    python manage.py migrations

    同步数据库数据

    python manage.py migrate

    有些项目需要启动数据,注意这些数据必须上传到服务器数据库内

    3.收集静态文件

    在项目主目录下建立一个文件夹

    mkdir static_file

    在settings.py中增加静态文件配置项

    STATIC_ROOT = /项目绝对路径/static_file

    执行命令,收集静态文件

    python manage.py collectstatic

    需要格外注意路径问题!!!!

    四.项目启动问题

    安装uwsgi

    pip install uwsgi

    1.uwsgi初步启动

    简易启动

    --file=项目/wsgi.py --http=0.0.0.0:8000 --static_map=/static
    写配置文件启动

    [uwsgi]
    http=0.0.0.0:8000
    #启用端口
    chdir=/home/myblog
    #指定运行的目录
    wsgi-file=myblog/wsgi.py
    #载入wsgi-file文件
    processes=4
    #开启进程数
    threads=2
    #开启线程数
    master=true
    #启用主进程管理
    pidfile=uwsgi.pid
    #指定记录主进程的文件
    vacuum=true
    #服务器关闭前清理环境
    daemonize=uwsgi.log
    #指定记录日志文件
    log-maxsize=6000
    #指定日志大小KB
    static-map=/static=static_file
    #静态文件目录
    

    启动命令

    uwsgi --ini uwsgi.ini

    关闭

    uwsgi --stop uwsgi.pid

    查看

    ps -ef|grep uwsgi

    查看帮助

    uwsgi -h(--help)

    重启

    uwsgi --reload uwsgi.pid

    查看uwsgi启用的进程号

    more uwsgi.pid

    2.nginx+uwsgi分布式联合启动

    安装nginx

    apt-get install nginx

    修改uwsgi配置文件

    [uwsgi]
    scoket=127.0.0.1:8000
    chdir=/home/myblog
    wsgi-file=myblog/wsgi.py
    processes=4
    threads=2
    master=true
    pidfile=uwsgi.pid
    vacuum=true
    daemonize=uwsgi.log
    static-map=/static=static_file
    

    修改nginx配置文件

    vim /etc/nginx/nginx.conf

    在http内添加

    http{
    server{
        listen 80;
        server_name 39.105.64.155;
        #反向代理
        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
        }
        #静态文件服务器
        location /static {
              alias /home/myblog/static_file;
        }
    }
    

    nginx负载均衡的策略

    权重分配

    upstream myweb{
        server 127.0.0.1:8000 weight 80;
        server 127.0.0.1:8001 weight 100;
        server 127.0.0.1:8002 weight 200;
    }
    ####ip分配方式
    upstream myweb{
        ip_hash;
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002 ;
    }
    
    
    
    

    相关文章

      网友评论

          本文标题:云服务器uWSGI+Django+nginx部署项目

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