一、代理与反向代理的基础理论知识

代理也被称为正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和指定的目标服务器提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的响应结果返回给客户端的过程,具体如下图所示:

image.png

若一个用户A没有访问目标服务器的权限,但是该用户可以访问代理服务器,且代理服务器又可以访问目标服务器。此时,就可以通过代理服务器完成相应的请求,使用户获取到目标服务器响应的内容。相对于代理服务,反向代理对于客户端而言就是目标服务器,客户端向反向代理服务器发送请求后,反向代理服务器将该请求转发给内部网络上的后端服务器,并将从后端服务器上得到的响应结果返回给客户端,具体过程如下图所示:

image.png

上述反向代理服务器的整个处理过程,其实用户并不清楚后端。

对代理与反向代理主要有两个特性:

1.安全性。反代代理将真正的处理放在内网中,有效提高了网络安全性。

2.功能性。反向代理的主要用途是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡功能、缓存功能等。

二、反向代理服务配置

虚拟实战环境:准备3台虚拟机

操作系统均采用:CentOS release 6.10 (Final)

反向代理服务器:192.168.12.128

后端服务器1:192.168.12.129

后端服务器2:192.168.12.130

#配置域名为test.ng.test的虚拟主机

server {

    listen 80;

    server_name  test.ng.test; 

#域名test.ng.test的请求全部转发到web服务器192.168.12.129

   location / {

        proxy_pass http://192.168.12.129;

     }

}

#配置域名为test.web.com的虚拟主机

server {

    listen 80;

    server_name  test.web.com;

#域名test.web.com的请求全部转发到web服务器192.168.12.130

   location / {

        proxy_pass http://192.168.12.130; 

        proxy_set_header Host $host;

       }      

}   

在物理机中找到drivers\etc目录下的hosts文件实现网站的域名访问,具体如下:

192.168.12.128  test.web.com

192.168.12.128  test.ng.test

三、测试运行效果如下图所示:

image.png

image.png