ubuntu16.04下使用nginx+uwsgi+django部署django项目

安装nginx

1.安装nginx的相关依赖
    sudo apt-get install libpcre3-dev gcc zlib1g-dev  build-essential
2.使用apt-get安装nginx
    sudo apt-get install nginx
3.启动你的nginx
    sudo service nginx restart
    在你浏览器的地址栏输入你的ip地址
    出现Welcome to nginx!的页面说明安装成功

安装uwsgi

1.使用pip安装uwsgi
    pip install uwsgi
2.测试是否可以使用uwsgi启动你的django项目
    uwsgi --http :8000 --chdir=/home/yfx/download/todolist --module todolist.wsgi
    --http :8000      django项目启动的端口
    --chdir=/home/yfx/download/todolist 项目所在的绝对路径
    --module todolist.wsgi 项目下的wsgi模块(django项目创建时自带一个wsgi.py)
    如果出现
*** Starting uWSGI 2.0.17.1 (64bit) on [Sat Sep  8 16:21:13 2018] ***
compiled with version: 5.4.0 20160609 on 08 September 2018 08:06:11
os: Linux-4.13.0-41-generic #46~16.04.1-Ubuntu SMP Thu May 3 10:06:43 UTC 2018
nodename: instance-6qytbj6i
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 1
    类似的进程,则表示uwsgi安装成功,并且可以启动你的django项目
3.使用uwsgi后台运行django项目
    uwsgi --http :8000 --chdir=/home/yfx/download/todolist --module todolist.wsgi --processes 4 --threads 2 --daemonize /home/yfx/download/todolist/log/todolist.log
    --processes 4 开启4个进程
    --threads 2 两个线程
    --daemonize /home/yfx/download/todolist/log/todolist.log 后台运行并指定日志存放路径
4.关闭uwsgi启动的项目的方法
    sudo lsof -i:8000
    然后kill -9 PID号
    结束相应进程

使用nginx反向代理运行django项目

nginx配置文件结构

简单说明nginx配置文件结构
    ├── conf.d
    ├── nginx.conf
    ├── sites-availablesites-available
    │   └── default
    ├── sites-enabled
    │   └── default -> /etc/nginx/sites-available/default
    nginx下的配置文件中有这样两个包含
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
    表示它的配置文件可以从conf.d/*.conf中获得,也可以从sites-enabled/*中获得,但很显然,我们的页面只能显示一个内容,于是一个巧妙的设计就出现了.我们可以将我们的配置文件放在sites-available目录下,然后建立软链接,链接到sites-enabled下,nginx启动找配置文件时,可以通过sites-enabled目录下的软链接找到sites-available目录下项目的配置文件,切记,更换项目时要删除原来的软链接,避免新项目的配置文件无法被nginx获取.

nginx反向代理运行django项目

    开始部署我们的项目吧,由于我们使用apt-get安装,默认的nginx配置文件在/etc/nginx
1.切换到sites-available下
    cd /etc/nginx/sites-available
2.建立一个属于你项目的配置文件
    这里我的项目名是todolist,为了方便管理,我在sites-available下建立一个名为todolist的配置文件
    sudo vim todolist
    配置如下
    server{
        listen 80;
        server_name 127.0.0.1;
        location / {
        include /etc/nginx/uwsgi_params;
        proxy_pass http://127.0.0.1:8000;
    }
    }
    监听80端口
    服务名可以改成你的域名
    nginx 反向代理就是访问你的ip时,会自动转向proxy_pass,即转到django的8000端口    
3.切换到sites-enabled下
    cd /etc/nginx/sites-enabled
4.将原来的那个软链接删除(不要舍不得删,它指向的是那个默认的nginx注册成功页面,并且如果你还想要,可以随时建立软链接,毕竟sites-enabled中的那个默认配置还在,这两个是一样的)
    sudo rm -rf default
5.建立软连接
    sudo ln -s /etc/nginx/sites-available/todolist /etc/nginx/sites-enabled 
6.重启nginx
    sudo service nginx restart
7.在浏览器地址栏里输入ip,不需要加端口,也能访问到你的django项目

你可能感兴趣的:(项目部署)