当前位置: 首页 > 科技观察

Nginx的开发与掌握之一:反向代理、动静分离、负载均衡

时间:2023-03-12 04:15:17 科技观察

Nginx简介Nginx是由lgorSysoev为俄罗斯访问量第二大网站rambler.ru设计开发的。自2004年发布以来,借助开源的力量,已经接近成熟和完善。Nginx功能丰富,可以作为HTTP网络服务器,也可以作为反向代理负载均衡服务器、邮件服务器等。支持FastCGI、SSL、VirtualHost、URLRewrite、Gzip等功能。并且支持很多第三方模块扩展。Nginx作为Web服务器的优势:与Apache相比,Nginx使用的资源更少,支持的并发连接数更多,体现出更高的效率,这使得Nginx特别受到虚拟主机提供商的青睐。它可以支持最多50,000个并发连接的响应。感谢Nginx选择epoll和kqueue作为我们的开发模型。作为负载均衡服务器:Nginx可以对内直接支持Rails和PHP,也可以作为HTTP代理服务器支持对外服务。Nginx是用C语言编写的,在系统资源开销和CPU使用效率上都比Perlbal好很多。作为邮件代理服务器:Nginx也是一个非常优秀的邮件代理服务器(开发这个产品的初衷之一也是作为邮件代理服务器),Last.fm描述了成功和精彩的使用体验。TengineTengine是由淘宝网发起的一个web服务器项目。在Nginx的基础上,针对大流量网站的需求,增加了很多高级的功能和特性。Tengine的性能和稳定性在淘宝、天猫等大型网站上得到了很好的检验。其最终目标是打造一个高效、稳定、安全、易用的Web平台。官方网站。反向代理要说反向代理,首先要了解正向代理。正向代理在当今的网络环境中,如果我们由于技术需要,想要访问一些国外的网站,这时候你会发现我们无法通过浏览器访问国外的网站。这时候大家可能翻墙了,主要的绕墙方式就是找一个可以访问国外网站的代理服务器,我们把请求发给代理服务器,代理服务器访问国外网站,然后把访问的数据传递过去给我们!上述代理模式称为正向代理。正向代理最大的特点是客户端非常清楚要访问的服务器地址;最终服务器只知道请求来自哪个代理服务器,不知道具体是哪个客户端;正向代理模式屏蔽或隐藏真实客户端信息。正向代理可以用一句话来概括:代理方就是客户端。反向代理(ReverseProxy)方式是指使用代理服务器接受Internet上的连接请求,然后将请求转发给内网服务器,并将从服务器得到的结果返回给请求连接上的Internet互联网。客户端,此时代理服务器对外充当反向代理服务器。比如用户去某宝买东西,我们不需要关心某宝的后台是怎么配置的。我只知道当我访问某宝的代理服务器时,代理服务器会代表所有服务器向我们提供数据。反向代理总结就一句话:代理端就是服务器端。动静分离动静分离就是让动态网站中的动态网页按照一定的规则把不变的资源和经常变化的资源区分开来。动静态资源拆分后,我们可以根据静态资源的特点进行缓存操作,这就是网站静态处理的核心思想。动静分离简单概括就是:动态资源和静态资源的分离。在我们的软件开发中,有的请求是后台的动态数据,有的请求是后台不需要处理的静态资源(如:css、html、image、js等文件),这些资源不需要在后台处理的就叫静态资源,否则就是动态资源。动静分离将网站静态资源(HTML、JavaScript、CSS、img等)和后台应用分开部署,提高用户访问静态代码的速度,减少对后台应用的访问。比如我们把静态资源放在nginx中,动态资源转发给tomcat服务器。负载均衡互联网早期,业务流量比较小,业务逻辑比较简单,单台服务器就可以满足基本需求;但是随着互联网的发展,业务流量越来越大,业务逻辑也越来越复杂。性能问题和单点问题凸显,需要多台机器横向扩展性能,避免单点故障。但是如何将不同用户的流量分配到不同的服务器上呢?负载均衡的思路是先将客户端的流量发送给负载均衡服务器,负载均衡服务器会通过一定的调度算法将流量分发到不同的应用服务器上面就是为了解决一个并发压力单机。比如某宝网站,每天同时连接该网站的访问量呈爆炸式增长,单台服务器远远不能满足人们日益增长的购买欲望。这时候就需要越来越多的服务器来解决单机的问题。限制并发访客数的问题。