Django项目部署到nginx服务器上

目标 :浏览器 www.rabbit.com 进入django项目主页,代码已经上传到百度网盘

1、概念
  1、Django项目(Web应用)
  2、Web服务
    1、nginx :高并发处理的好
    2、Apache:稳定
       LAMP : Linux、Apache、MySQL、Python/Php/Perl
       LNMP : Linux、Nginx、MySQL、Python/Php/Perl
    3、uwsgi
      是Web服务器与Web框架之间一种简单而通用的接口
2、项目部署
  1、部署环境准备
    1、确保Django项目可以运行
    2、安装nginx(用apt-get安装)
      1、安装 :sudo apt-get install nginx
      2、启动 :sudo /etc/init.d/nginx restart
      3、验证 :浏览器,输入127.0.0.1->Welcome to nginx
    3、安装uwsgi(用pip3安装)
      1、安装 :sudo pip3 install uwsgi
      2、验证 :uwsgi --http :9999 --chdir /home/tarena/project/fruitday/ --module fruitday.wsgi
3、项目部署步骤
  1、配置uwsgi(配置文件)
    1、在项目目录(manage.py所在路径)中新建uwsgi启动文件 :fruitdayUwsgi.ini
    2、vi fruitdayUwsgi.ini
      [uwsgi]
      # 指定和nginx通信的端口
      socket=127.0.0.1:9001
      # 项目路径
      chdir=/home/tarena/project/fruitday
      # wsgi.py路径
      wsgi-file=fruitday/wsgi.py
      # 进程数
      processes=4
      # 线程数
      thread=2
      # uwsgi自身占用端口
      stats=127.0.0.1:8080
  2、配置nginx(配置文件)
    1、sudo -i
    2、cd /etc/nginx/sites-enabled/
    3、vi projectNginx.conf
    server{
        # 监听本项目端口,浏览器输入的端口
        listen 80;
        server_name www.tiger.com;
        charset utf-8;

        # 收集静态文件的路径
        location /static{
        alias /home/tarena/project/fruitday/static;
        }

        # 和uwsgi通信端口 和项目通信文件
        location /{
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:9001;
        }
    }
    4、拷贝uwsgi_params文件到项目目录
      cp uwsgi_params /home/tarena/project/fruitday/
    5、vi /etc/nginx/sites-enabled/default
      listen 80 default server;
      # 把 80 端口改为其他端口
    6、重启nginx服务
       sudo /etc/init.d/nginx restart
  3、收集静态文件
    1、在settings.py中添加路径(STATIC_ROOT)
      STATIC_ROOT = '/home/tarena/project/fruitday/static/'
    2、收集静态文件
      python3 manage.py collectstatic
  4、添加本地DNS解析
    1、sudo -i
    2、vi /etc/hosts
      # 添加如下内容
      127.0.0.1    www.tiger.com
    3、重启网络服务
      /etc/init.d/networking restart
  5、uwsgi启动项目
    1、切换到项目目录
      cd /home/tarena/project/fruitday
    2、利用uwsgi启动项目
      uwsgi --ini fruitdayUwsgi.ini


**更详细的部署过程**
1. 第一大步:确保Django项目能够运行
    在主目录下新建目录
        tarena@tedu:~$ mkdir myproject
2. 将项目复制到myproject文件夹下,直接拖拽
3. 打开项目查看
        tarena@tedu:~/myproject$ code fruitday/
4. 在settings.py文件中修改DATABASES的'NAME',从'Day_Fruit'修改成fruit
5. 在mysql中创建一个fruit数据库
        进入数据库:mysql -uroot -p123456
        新建数据库:create database fruit charset utf8;
6. 同步数据库数据
    tarena@tedu:~/myproject/fruitday$ python3 manage.py makemigrations
    tarena@tedu:~/myproject/fruitday$ python3 manage.py migrate
7. 启动服务
    tarena@tedu:~/myproject/fruitday$ python3 manage.py runserver 0.0.0.0:8000
8. 登录测试
    http://127.0.0.1:8000/user/login/
    结果显示成功
9. 第二大步:安装Nginx,安装、启动、验证
10. 安装nginx:sudo apt-get install nginx
        启动:sudo /etc/init.d/nginx restart
        验证:
            打开浏览器输入:127.0.0.1:80-->Welcome to Nginx
11. 第三大步:安装uwsgi
        1. 安装(务必要用pip3)
            sudo pip3 install uwsgi
        2. 验证
            tarena@tedu:~/myproject/fruitday$ uwsgi --http :9000 --chdir /home/tarena/myproject/fruitday/ --module fruitday.wsgi
            然后打开浏览器,输入:http://127.0.0.1:9000/user/login/
            能够显示内容,成功
12. 项目部署19:26
    1. 配置uwsgi
        和nginx通信端口 自身启动占用的端口
        1. 在项目目录(manager.py所在路径)中新建uwsgi启动文件:fruitdayUwsgi.ini
            具体内容如下:
            [uwsgi]

            #指定和nginx通信的端口
            socket=127.0.0.1:8001
            #项目路径
            chdir=/home/tarena/myproject/fruitday
            #wsgi.py路径
            wsgi-file=fruitday/wsgi.py
            #进程数
            processes=4
            #线程数
            thread=2
            #uwsgi自身占用端口
            stats=127.0.0.1:8080


    2. 配置nginx(配置文件)
        root权限进入到/etc/nginx/sites-enabled中,并vi新建配置文件projectNginx.conf
        注意:使用root权限进行编写 sudo -i
        文件内容如下:

        server{
        #指定本项目监听端口,浏览器输入端口
        listen 80;
        #域名
        server_name www.rabbit.com;
        charset utf-8;

        #指定收集静态文件路径
        location /static{
                        alias /home/tarena/myproject/fruitday/static
        }
        #和uwsgi通信端口和通信文件
        location /{
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8001;
        }
        }


        ########
        拷贝uwsgi_params到项目根目录
            1. sudo -i
            2. cd /etc/nginx
            3. cp uwsgi_params /home/tarena/myproject/fruitday

        **关闭nginx默认的server(80)**
            1. sudo -i
            2. cd /etc/nginx/sites-enabled
            3. vi default #把listen的端口由80改成800
                server{
                    listen 800 default_server;
                    listen [::]:80 default_server;
                }    

        **重启nginx服务**
            sudo /etc/init.d/nginx restart

    
    3. 收集静态文件
        1. 在settings.py文件的最后一行添加路径(STATIC_ROOT)
            STATIC_ROOT = '/home/tarena/myproject/fruitday/static'
        2. 收集静态文件
            1. cd /home/tarena/myproject/fruitday
            2. python3 manage.py collectstatic

    4. 添加本地DNS解析:
            1. root cd 到/etc文件下:cd /etc
            2. vi hosts
            3. 添加一行内容:127.0.0.1       www.rabbit.com
            4. 重启网络服务:/etc/init.d/networking restart

    5. uwsgi启动项目
        1. 切换到项目目录
            cd /home/tarena/myproject/fruitday
        2. 利用uwsgi启动项目
            uwsgi --ini fruitdayUwsgi.ini
    
    6. 打开浏览器,输入www.rabbit.com,直接进入项目主页
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值