linux下配置透明代理反向代理并用iptables实现负载均衡

项目背景:学院的期末的课程设计,自己经过两天查错写出来的。


一  透明代理一般用在客户机是内网,要去访问外界的web服务器,通过NAT把自己的内网ip地址转换为代理服务器公网ip,再去访问,web服务器收到请求后,再回复代理服务器,然后代理服务器将web服务器给的内容先缓存一份在本地,然后再发给客户端,当客户端访问同样的内容时,代理服务器直接将自己缓存的内容发给客户端,这样客户端的访问速度就会大大提升。


操作环境: VMware Workstation9 

           linux 5.8


拓扑图如下

linux下配置透明代理反向代理并用iptables实现负载均衡_第1张图片

第一步 :配置环境

我这里创建了3台虚拟机,一台做web服务器,一台做squid代理服务器,一台做客户端,按照以上的拓扑图为它们配置ip地址。

客户机

linux下配置透明代理反向代理并用iptables实现负载均衡_第2张图片

web服务器

linux下配置透明代理反向代理并用iptables实现负载均衡_第3张图片

squid代理服务器:

linux下配置透明代理反向代理并用iptables实现负载均衡_第4张图片

linux下配置透明代理反向代理并用iptables实现负载均衡_第5张图片

第二步:将squid代理服务器网卡转发功能打开,并且将客户机和web服务器的网关指向squid ,让其能够互相通信。

wKioL1bYJSOBpEr8AAARW43-OVk231.png

linux下配置透明代理反向代理并用iptables实现负载均衡_第6张图片

linux下配置透明代理反向代理并用iptables实现负载均衡_第7张图片

 

第三步: 在web服务器上增加一个web网页(我已经增加好所以使用cat查看)。

wKioL1bYJkTygHvQAAAUVa93m-s768.png

第四步:在squid代理服务器上设置透明代理并利用iptables实现负载均衡。

linux下配置透明代理反向代理并用iptables实现负载均衡_第8张图片


第五步 :在客户机进行测试并在squid和web服务器查看日志。wKiom1bYJqWBVNucAAATrRzyi-k194.png

web服务器的日志显示:

linux下配置透明代理反向代理并用iptables实现负载均衡_第9张图片

squid服务器的日志显示:

web服务器的日志清晰的显示出是squid服务器的ip来进行的访问,squid服务器日志也清晰的显示出是客户机的ip来申请的访问,功能实现。


二 : 反向代理服务器:

反向代理简单来说是服务器为内网,外界想要访问的话只能通过反向代理服务器来进行访问,因此,反向代理服务器还能充当防火墙的作用,即使它被攻破了,源web主机也没事。


拓扑图如下:

linux下配置透明代理反向代理并用iptables实现负载均衡_第10张图片

第一步 :在squid反向代理服务器上配置dns服务,将squid反向代理服务器首选dns服务器设为192.168.0.1,web服务器和客户机首选dns服务器分别设为172.16.0.1和192.168.0.1,并启动dns服务

linux下配置透明代理反向代理并用iptables实现负载均衡_第11张图片

linux下配置透明代理反向代理并用iptables实现负载均衡_第12张图片

wKiom1bYKenhzqjnAAASEWBtXgA392.png



第二步 :在squid反向代理服务器上squid配置文件中设置源web地址及反向代理地址

linux下配置透明代理反向代理并用iptables实现负载均衡_第13张图片

第三步 :在客户机进行测试,输入squid反向代理服务器地址,注意,这里使用的web网页和第一个透明代理的相同。

wKiom1bYKqDisTf2AAARtj5tV3c035.png

从这里我们可以看出来,虽然客户机访问的是squid反向代理服务器的地址,但是squid反向代理服务器并没有打开http服务,让我们继续往下看。

第四步 :查看squid服务器squid访问日志

通过这条日志记录,可以看出客户机向squid反向代理服务器发出的申请。

第五步 :查看web服务器http访问日志

wKiom1bYLO3i1x8gAAATrZmYuoA774.png

这条记录没有ip地址访问,由于我之前测试过,所以当客户机再次想访问web服务器的内容时候,squid反向代理服务器检测到客户机申请的内容相同,所以直接将自己缓存的内容发给了客户机,所以这里没有内容显示。



总结:通过这个实验我加深了计算机之间是如何进行通信,特别是防火墙之间的信息交换,web加速原理以及squid这个软件的使用。

你可能感兴趣的:(linux,反向代理,透明代理)