普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
二 apache 实现反向代理
更成熟的软件可以实现基于URL的反向NAT,也就是说,每个内部的www主机都解析到linux网关的外部网卡,当收到如www.1.com的请求时, 网关可以自动转发到真实的www.1.com(假设为192.168.1.1), 收到www.1.com的响应后再改写源地址为网关的真实ip地址返回给internet用户。也就是说可以工作在应用层进行分析转发,同时工作在网络层 进行地址改写。
一台apache服务器(双网卡)用专线接入Internet作为防火墙,在内部网段上有多台WWW服务器希望这台机器能使供外部世界访问指定的WWW服务器
这台机器真实ip地址为111.111.111.111,内部ip地址172.16.1.1 内部网段上有三台web服务器:
www1(172.16.1.101) www2(172.16.1.102) www3(172.16.1.103)
这三台web服务器类型不限,可以是apache,也可用IIS或其他系统。
外部dns服务器指定
www1.xxx.com(111.111.111.111) www2.xxx.com(111.111.111.111) www3.xxx.com(111.111.111.111)
apache配置时其它部份采用默认配置,以下才是我们关心的:
------------------------------------------------------------------------------------------
NameVirtualHost 111.111.111.111
<VirtualHost 111.111.111.111>
ServerName www1.xxx.com
ProxyPass / http://172.16.1.101/
ProxyPassReverse / http://172.16.1.101/
</VirtualHost>
<VirtualHost 111.111.111.111>
ServerName www2.xxx.com
ProxyPass / http://172.16.1.102/
ProxyPassReverse / http://172.16.1.102/
</VirtualHost>
<VirtualHost 111.111.111.111>
ServerName www3.xxx.com
ProxyPass / http://172.16.1.103/
ProxyPassReverse / http://172.16.1.103/
</VirtualHost>
--------------------------------------------------------------------------------------------
采用本方法,内部的WWW服务器和文件服务完全与外部世界隔开,不直接连接到外部, 通过防火墙上运行的Apache服务提供对内部的代理访问,增强了安全性,同时在防火墙上运行的Apache 服务器上无真正的内容,黑客难以篡改内容,符合了作为防火墙要求运行服务越少越安全的准则。
采用本方法,内部的WWW服务器的内容在防火墙上进行缓存,起到加速响应的效果。