美文网首页
nginx与uWsgi

nginx与uWsgi

作者: 鹊南飞_ | 来源:发表于2020-04-17 10:19 被阅读0次

什么是nginx

nginx是一个开源的,支持高性能,高并发的代理服务软件
nginx不但是一个优秀的web服务软件,还可以作为反想代理和负载均衡,以及缓存服务或使用

为什么使用nginx

支持高并发,能支持几万个并发链接
资源消耗少,三万并发编程开启10个nginx线程消耗不到200m
可以做反向代理和负载均衡
支持异步网络io事件模型epoll

nginx、WSGI、uwsgi、uWSGI

wsgi 本身不是服务器,也不是python模块,只是一种协议,链接着server 和 App,描述两者之间的规则

uwsgi 和wsgi一样是通信协议,是uWSGI服务器的单独形式,用于自定义传输类型

uWSGI 是一个web服务器,实现了WSGI协议,uwsgi协议

nginx  web服务器,更加安全,更好的处理静态资源,缓存功能,负载均衡,配合uWSGI服务器会更加安全

nginx和uWSGI 的意义

nginx接收到浏览器的http请求,将包进行解析,分析url,
如果是静态文件直接访问用户给nginx配置静态文件目录,
如果不是静态文件,是一个动态请求,nginx会转发给uwsgi,
uwsgi接到请求会进行处理成wsgi可以接受的形式,并发给wsgi,
wsgi根据请求调用应用程序的某个文件,
某个文件的某个函数处理完会返回给wsgi,
wsgi将返回值进行打包,
打包成uwsgi能够接受的格式,
uwsgi接受wsgi的发送请求,
转发给nginx,nginx最终将返回值返回给浏览器

为什么不用uWSGI作为唯一服务器

1.  安全问题,程序不能直接被浏览器访问到,
而是通过nginx,nginx只开放某个接口,
uwsgi本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用。

2. 负载均衡问题,一个uwsgi很可能不够用,即使开了多个work也是不行,
毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。

3. 静态文件问题,用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为,
而且他们本身对文件的处理也不如nginx好,
所以整个静态文件的处理都直接由nginx完成,
静态文件的访问完全不去经过uwsgi以及其后面的东西。

相关文章

网友评论

      本文标题:nginx与uWsgi

      本文链接:https://www.haomeiwen.com/subject/ryxevhtx.html