【虚拟机/服务器】uWSGI+Nginx部署Django项目补充

首先弄清下面几个概念

  • WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI协议之上的web框架有Bottle, Flask, Django。
  • uwsgi:与WSGI一样是一种通信协议,是uWSGI服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说该协议是fcgi协议的10倍快。
  • uWSGI:旨在为部署分布式集群的网络应用开发一套完整的解决方案是一个web服务器。是一个web服务器,实现了WSGI协议、uwsgi协议、http协议等。

uWSGI+Django比单独使用Django的优势

  • 支持的并发量更高
  • 方便管理多进程,发挥多核的优势
  • 提升性能,因为uwsgi协议比WSGI协议有优势

uWSGI+Django+Nginx(反向代理服务器)

这里写图片描述

upstream mycom{
    ip_hash;   #每个请求按访问IP的hash结果分配,这样能够将某个IP的请求定向到同一台后端,使某个客户端与某个后端建立稳固的session
    server 192.168.0.14:88 weight=7;   #负载均衡服务器群
    server 192.168.0.15:80 weight=10;  #默认轮询,weight权重指定轮询几率,用于后端服务器性能不均的情况
    server 192.168.0.16:80 down;       #down标记该服务永久不可用
    server 192.168.0.17:80 backup;     #backup标记该服务是一个热备服务,当主服务不可用后才会把请求传递给他
}

location / {   
    include uwsgi_params;
    uwsgi_pass mycom;                 #连接负载均衡服务器
}

我在之前的【虚拟机/服务器】通过虚拟机Ubuntu Server+uWSGI+Nginx部署Django项目这篇文章中有整个项目部署的详细步骤,但是缺少利用Nginx的负载均衡,并且对WSGI、uwsgi、uWSGI没有进一步了解,特在此补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值