nginx代理Django项目

目标 :浏览器 www.mydjango.test 进入django项目主页

1、概念

  • Django项目(Web应用)
  • Web服务
    • nginx :高并发处理的好
    • Apache:稳定
      LAMP : Linux、Apache、MySQL、Python/Php/Perl
      LNMP : Linux、Nginx、MySQL、Python/Php/Perl
    • uwsgi
      是Web服务器与Web框架之间一种简单而通用的接口

2、项目部署

  • 部署环境准备
    • 确保Django项目可以运行
    • 安装nginx(用apt-get安装)
      • 安装 :sudo apt-get install nginx
      • 启动 :sudo /etc/init.d/nginx restart
      • 验证 :浏览器,输入127.0.0.1->Welcome to nginx(80端口)
    • 安装uwsgi(用pip3安装)
      • 安装 :sudo pip3 install uwsgi
      • 验证 :uwsgi --http :9999 --chdir /home/godyang/work/pf/ --module pf.wsgi

3、项目部署步骤

1.配置uwsgi(配置文件)

  • 在项目目录(manage.py所在路径)中新建uwsgi启动文件 :uwsgi.ini
  • vi uwsgi.ini
    配置文件内容如下: 直接copy
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    [uwsgi]
    #使用nginx连接时使用,Django程序所在服务器地址
    socket=10.211.55.2:8001 #改为服务器内网IP,本地测试为127.0.0.1
    #直接做web服务器使用,Django程序所在服务器地址
    #http=10.211.55.2:8001
    #项目目录 (后端项目目录)
    chdir=/Users/delron/Desktop/meiduo/meiduo_mall
    #项目中wsgi.py文件的目录,相对于项目目录
    wsgi-file=meiduo_mall/wsgi.py
    # 进程数
    processes=4
    # 线程数
    threads=2
    # uwsgi服务器的角色
    master=True
    # 存放进程编号的文件
    pidfile=uwsgi.pid
    # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
    daemonize=uwsgi.log
    # 指定依赖的虚拟环境
    virtualenv=/Users/delron/.virtualenv/meiduo

2. 配置nginx(配置文件)(在nginx哪个配置文件里配置都可以,nginx.conf或者sites-enabled/default或者sites-enabled/新建配置文件)

1
2
3
sudo -i
cd /etc/nginx/sites-enabled/
vi projectNginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server{
# 监听本项目端口,浏览器输入的端口
listen 80;
server_name www.zy.com;(域名或者服务器外网IP或者用逗号隔开都写)
charset utf-8;

# 收集静态文件的路径
location /static{
alias /home/godyang/work/pf/static;
}

# 和uwsgi通信端口 和项目通信文件
location /{
include uwsgi_params;
uwsgi_pass 172.17.138.117:8000;(服务器内网IP)
}
}
  • vi /etc/nginx/sites-enabled/default
    listen 80 default_server;
    把 80 端口改为其他端口,上下都改变,然后允许端口号
    在settings中 ALLOWED_HOSTS = [‘*’]
  • 重启nginx服务
    sudo /etc/init.d/nginx restart

3. 收集静态文件

  • 在settings.py中添加路径(STATIC_ROOT)
    STATIC_ROOT = ‘/home/tarena/project/fruitday/static/‘
  • 收集静态文件
    python3 manage.py collectstatic

4. 添加本地DNS解析

  • sudo -i
  • vi /etc/hosts
    添加如下内容
    127.0.0.1 www.mydjango.test
  • 重启网络服务
    /etc/init.d/networking restart

5. uwsgi启动项目

  • 切换到项目目录
    cd /home/tarena/project/fruitday
  • 利用uwsgi启动项目
    uwsgi –ini uwsgi.ini
支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励