浅谈uWSGI和Nginx
<div class="article-info-box">
<div class="article-bar-top d-flex">
<span class="time">2018年01月15日 20:45:33</span>
<div class="float-right">
<span class="read-count">阅读数:1591</span>
</div>
</div>
</div>
<article>
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
<div class="markdown_views">
<p>前一篇说到了部署Django+uWIGS+Nginx环境,为什么要部署uWSGI和Nginx,以及uWSGI和Nginx是什么进行一番学习,在这里总结一下。</p>
1.WIGS(Web Server Gateway Interface)服务器网关接口
是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受, 它已基本达成它的可移植性方面的目标。
WSGI 没有官方的实现, 因为WSGI更像一个协议. 只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行, 反之亦然。
WSGI标准在 PEP 333 中定义并被许多框架实现,其中包括现广泛使用的django框架。
所以说WIGS是一种标准
2.uWIGS
可以看作是一个应用程序,帮助我们实现WSGI协议,Http协议,这样我们可以不再关注网络通信的底层实现,将精力更多放在处理HTTP请求数据,返回HTML。利用uWIGS可以是我们的web应用得到更强的并发能力,uWIGS也可以返回静态文件(css,js,img…),但是很笨拙,一般静态文件都交由Nginx进行传输,所以配置中一般不配置static-map,如果直接由uWIGS接受HTTP请求则需要设置http:xxxx,如果只需要与反向代理服务器进行交互则只需要接受socket,uWIGS与Nginx交互相当于两个进程间交互,一般使用的是.sock文件或者指定端口接受socket。指定端口时再使用浏览器访问相应端口,uWIGS会提示skip,跳过该HTTP请求。
3.代理服务器(Proxy Server)
是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
这个就是正向的代理服务器,它是代理网络用户去访问获得网络信息,主要起到的是安全作用,因为有隐藏真实ip,突破访问限制的功能。其中最常见的就是VPN了。
4.反向代理服务器(Reverse Proxy)
反向代理,故名思意就是将代理服务器做出逆转,它主要的功能是代理服务器接收客户端发来的Http请求,转发到内部网络服务器,并返回Response给客户端。
反向代理的作用:
- 保证内网安全,可以使用反向代理服务器提供的WAF功能,阻止web攻击。
- 负载均衡,通过反向代理服务器来优化网站的负载
缓存静态资源,加快访问速度
5.Nginx(engine x)
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。
它具有反向代理服务器的所有特点,并且配置简单,支持对大于1kb的文件进行压缩,静态文件缓存,可以大大提高访问效率。Nginx接受来自客户端的Http请求发送给uWSGI,uWSGI处理请求并将关键信息传递给web应用(django,flask等),应用返回Response经由uWSGI发送给Nginx,Nginx再发送给客户端。
<div class="article-bar-bottom">
<div class="article-copyright">
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/shu_8708/article/details/79068581 </div>
<div class="tags-box">
<span class="label">个人分类:</span>
<a class="tag-link" href="https://blog.youkuaiyun.com/shu_8708/article/category/6981422" target="_blank">Python </a><a class="tag-link" href="https://blog.youkuaiyun.com/shu_8708/article/category/7388242" target="_blank">计算机网络 </a>
</div>
<div class="tags-box hot-word">
<span class="label">相关热词:</span>
<a class="tag-link" href="https://blog.youkuaiyun.com/Miraclesss/article/details/79344984" target="_blank">
大数据浅谈 </a>
<a class="tag-link" href="https://blog.youkuaiyun.com/wyn126/article/details/80315620" target="_blank">
协议浅谈 </a>
<a class="tag-link" href="https://blog.youkuaiyun.com/china_bim/article/details/78648682" target="_blank">
bim浅谈 </a>
<a class="tag-link" href="https://blog.youkuaiyun.com/qq_16664643/article/details/52240578" target="_blank">
css3浅谈 </a>
<a class="tag-link" href="https://blog.youkuaiyun.com/itplus/article/details/11452743" target="_blank">
浅谈协方差矩阵 </a>
</div>
</div>
<!-- !empty($pre_next_article[0]) -->
<div class="related-article related-article-prev text-truncate">
<a href="https://blog.youkuaiyun.com/shu_8708/article/details/79031328">
<span>上一篇</span>Django+uwigs+Nginx部署以及遇到的问题 </a>
</div>
<div class="related-article related-article-next text-truncate">
<a href="https://blog.youkuaiyun.com/shu_8708/article/details/79077054">
<span>下一篇</span>Python多进程multiprocessing </a>
</div>
</div>