eoogo
1/13/2020 - 7:18 AM

nginx代理Django项目

目标 :浏览器 www.tiger.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(80端口)
    3、安装uwsgi(用pip3安装)
      1、安装 :sudo pip3 install uwsgi
      2、验证 :uwsgi --http :9999 --chdir /home/godyang/work/pf/ --module pf.wsgi
3、项目部署步骤
  1、配置uwsgi(配置文件)
    1、在项目目录(manage.py所在路径)中新建uwsgi启动文件 :uwsgi.ini
    2、vi uwsgi.ini
   配置文件内容如下: 直接copy
[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、sudo -i
    2、cd /etc/nginx/sites-enabled/
    3、vi projectNginx.conf
	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)
	    }
	}
     
    5、vi /etc/nginx/sites-enabled/default
      listen 80 default server;
      # 把 80 端口改为其他端口,上下都改变,然后允许端口号
      # 在settings中  ALLOWED_HOSTS = ['*']
    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 uwsgi.ini