微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

uWSGI 、 WSGI 、 uwsgi、Nginx

1.概念区分

uWsgi一个 Web 服务器,它实现了 Wsgi 协议、 uwsgi、 http 等协议。 Nginx
HttpUwsgiModule 的作用是与 uWsgi 服务器进行交换。 Wsgi 是一种 Web 服务器网关接口。它是一个 Web 服务器(如 Nginx,uWsgi 等服务器)与 web 应用(如用 Flask 框架写的程序)通信的一种规范。
Wsgi / uwsgi / uWsgi 这三个概念的区分:

  • Wsgi 是一种通信协议。
  • uwsgi是一种线路协议而不是通信协议,在此常用于在 uWsgi 服务器与其他网络服务器的数据通信。
  • uWsgi是实现了 uwsgi 和 Wsgi 两种协议的 Web 服务器。

2.Nginx

Nginx一个开源的高性能的 HTTP 服务器和反向代理:
1.作为 web 服务器,它处理静态文件和索引文件效果非常高;感恩于心,回报于行。 面
2.它的设计非常注重效率,最大支持 5 万个并发连接,但只占用很少的内存空间;
3.稳定性高,配置简洁;
4.强大的反向代理和负载均衡功能,平衡集群中各个服务器的负载压力应用。

web 开发中,部署方式大致类似。简单来说,使用 Nginx 主要是为了实现分流、转发、负载均衡,以及分担服务器的压力。 Nginx 部署简单,内存消耗少,成本低。 Nginx 既可以做正向代理,也可以做反向代理。

正向代理:请求经过代理服务器从局域网发出,然后到达互联网上的服务器。
特点:服务端并不知道真正的客户端是谁。
反向代理:请求从互联网发出,先进入代理服务器,再转发给局域网内的服务器。
特点:客户端并不知道真正的服务端是谁。
区别:正向代理的对象是客户端。反向代理的对象是服务端。

3. Nginx 和 uWISG 服务器之间如何配合工作

1.首先浏览器发起 http 请求到 Nginx 服务器,
2.Nginx 根据接收到请求包,进行 url 分析,判断访问的资源类型,如果是静态资源,直接读取静态资源返回给浏览器,如果请求的是动态资源就转交给 uwsgi服务器,
3.(请求的是动态资源)uwsgi 服务器根据自身的 uwsgi 和 Wsgi 协议,找到对应的 Django 框架
4.Django 框架下的应用进行逻辑处理后,将返回值发送到 uwsgi 服务器,
5.然后 uwsgi 服务器再返回给 Nginx
6.最后 Nginx将返回值返回给浏览器进行渲染显示用户

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐