反向代理服务器在项目场景中的应用
Posted 嘉和资讯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反向代理服务器在项目场景中的应用相关的知识,希望对你有一定的参考价值。
1.反向代理服务器的定义
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理服务器的原理,客户机发起Web请求到反向代理服务器,反向代理服务器把请求转发到内部的Web服务器,Web服务器将返回信息返回到反向代理服务器,反向代理服务器再讲信息返回给客户机。
2.反向代理服务器的作用
根据反向代理的服务器的原理总结出反向代理服务器的作用:
a.反向代理隐藏了真实的服务端,保证其安全,起到了安全防护的作用
b.当客户机和Web服务器不在同一个网络时,可以通过反向代理服务器访问,起到了数据交换和转发的作用
c.当有多台Web服务器时,反向代理服务器可以实现均衡,根据策略转发请求到Web服务器集群中
3.常用的反向代理服务软件:
反向代理服务器种类很多,每个软件的突出的重点不同:
从这三层功能结构充分了解,在测试调优及生产线的实践检验中,nginx功能、性能以及适用性较强,所以得到了广泛的使用,包括虎扑、网易、腾讯、新浪等等这些互联网公司和大型网站使用的是Nginx:
•HTTP防御性能:HAProxy、Nginx在应对大流量CC攻击时,做正则匹配及头部过滤时,CPU消耗只占10%~20%。其它软件占CPU资源约90%以上,容易成瓶颈导致整个系统无响应。
•反向代理性能:单纯转发效率以内存缓存型的Varnish性能最强,ATS和Nginx次之,考虑大容量缓存因素,ATS也是个不错的选择。Nginx是专门针对C10K的产物,性能不错,配合自己编写插件,业务可塑性很强。
•过滤规则的可配置性:HAProxy,ATS,Squid均支持规则文件读取、ACL定制和热加载、热启动。Nginx则不支持外部文件正则匹配,略差一点,但可塑性强。
4.Nginx反向代理服务器在项目中的应用场景
场景一: 使用Nginx实现应用服务器负载均衡
当一台应用服务器无法满足访问请求需要建立应用服务器集群时,可以使用Nginx做负载均衡,Nginx支持后端存活检查并提供以下几种负载均衡策略:
●轮询:将请求依次轮询发给每个服务器。
●最少链接:将请求发送给持有最少活动链接的服务器。
●IP哈希:通过哈希函数决定请求发送给哪个服务器。
●权重:服务器的权重越高,处理请求的概率越大。
场景二:使用反向代理实现跨网络/网段的应用访问
客户机不能直接访问应用服务器时,可以利用一台DMZ区域的服务器搭建反向代理服务器,转发客户机请求到应用服务器并返回应用服务器的数据。为了提升数据转发的安全可以应用服务器和反向代理以及反向代理和客户机之间可以使用HTTPS传输和交换数据。
●提供加密的数据传输和转发通道
●隐藏后端的应用服务器
●实现了跨网络或网段的应用访问
5.反向代理服务器使用总结
反向代理服务器不仅仅可以应用在上述的场景中,还可以应用在一台反向代理服务器代理多台应用服务器的场景、一台反向代理服务器实现多组应用服务器的负载均衡等等场景中,也可以使用Nginx发布一个或多个web项目。如果大家对反向代理或者Nginx有什么疑问可以随时找IT部门进行沟通。
以上是关于反向代理服务器在项目场景中的应用的主要内容,如果未能解决你的问题,请参考以下文章