反向代理及其作用
一、什么是正向代理
在介绍反向代理之前我们先介绍什么是正向代理
首先要明确的是,在http协议中正向代理一般被称为代理,在web服务中我们可以通过主动配置代理服务器的方式来发送请求,并通过代理服务器接收服务器的响应。这个过程是由你自己决定的,是你主动的使用代理来访问别的服务。
为什么要这么做?
正向代理可以有很多用处,比如我们常见的校园网、教务系统就是正向代理,通过挂载学校的代理服务器地址来访问,这样可以方便学校方面对访问者进行管控。
或者是以访问加速为目的,事先在代理服务器中配置一些页面的缓存,这样我们可以通过代理服务器快速的访问页面。
二、什么是反向代理
正向代理是由用户来配置的,而反向代理则是由web服务开发者配置的。开发者通过配置代理来接受请求保护自己的ip地址不被暴露。
这样的话用户在发送请求的时候并不会显示真正的地址而是发送到代理地址中,再由代理服务器发送给真正的web服务器。
通常还可以通过反向代理来配置负载均衡
什么是负载均衡?
在集群模式下,web开发者可以配置很多的服务器以及在每个服务器上配置端口重复启动服务来提高吞吐量以及并发量。而当我们启动这些服务器以及端口的时候就会出现一些问题,用户不知道这些端口以及服务器地址该怎么办? 如果知道了依然有很多人访问一个端口怎么办? 这些情况都有可能导致大量请求打入服务器导致服务器处理不了而崩溃。
但是我们可以通过配置反向代理来集中管理这些地址,由反向代理服务器来决定访问哪些地址,以保证各个地址的负载均衡,避免把服务压垮的情况出现。
三、反向代理的作用
安全
通过上面的介绍,反向代理可以防止服务器的ip暴露遭受直接攻击,攻击者只能看到代理服务器上的信息,无法得知服务中真正的数据资源。即使遭受了大规模的攻击也仅仅会使反向代理服务器发生问题而不会影响到真正的业务系统。
提速
与正向代理相同,web开发者同样可以将静态资源缓存在反向代理服务器中,访问者会直接通过缓存来访问页面,减少静态资源服务器的压力,提高访问速度。