一、代理与反向代理的基础理论知识
代理也被称为正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和指定的目标服务器提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的响应结果返回给客户端的过程,具体如下图所示:
若一个用户A没有访问目标服务器的权限,但是该用户可以访问代理服务器,且代理服务器又可以访问目标服务器。此时,就可以通过代理服务器完成相应的请求,使用户获取到目标服务器响应的内容。相对于代理服务,反向代理对于客户端而言就是目标服务器,客户端向反向代理服务器发送请求后,反向代理服务器将该请求转发给内部网络上的后端服务器,并将从后端服务器上得到的响应结果返回给客户端,具体过程如下图所示:
上述反向代理服务器的整个处理过程,其实用户并不清楚后端。
对代理与反向代理主要有两个特性:
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.129 test.web.com
192.168.12.129 test.ng.test
三、测试运行效果如下图所示: