一、目的

    通过配置代理服务器,实现以下目标:

  1. 代理服务器可以将远程的Web服务器页面缓存在本地

  2. 代理服务器端口设置为80端口

  3. 用户通过访问代理服务器即可获得远程Web服务器上的页面内容

  4. 远程Web服务器对客户端用户是透明的

  5. 利用缓存机制提高网站的响应速度


二、方案

         使用3台RHEL7虚拟机,其中一台作为Squid代理服务器(B主机),该服务器用来连接两个网段,因此需要配置两块网卡,地址分别为192.168.4.102和192.168.2.102。一台作为客户端测试主机(主机A),IP地址为192.168.4.101。一台Web服务器(主机C),地址为192.168.2.103,该Web服务器为其他代理提供Web数据源。


三、实现步骤

    1、在主机C上安装web软件包,启动服务,开机自启     

         yum -y install httpd        systemctl restart httpd           systemctl enable httpd

    2、为Web访问建立测试文件:在网站根目录/var/www/html下创建一个名为index.html的首页文件

            echo "test" > /var/www/html/index.html

   3、部署squid代理服务器,在主机B上安装squid代理软件

         yum -y install squid.x86_64

   4、修改/etc/squid/squid.conf配置文件:vim /etc/squid/squid.conf

          56             http_access allow all                                                           //允许所有的主机可以访问

          59             http_port 80  vhost                                                             //设置反向代理,并更改端口为80

          60            visible_hostname www.haha.com                                         //设置主机名,默认没有该语句,主机名就是后面你需要访问的实际网站,我这里随便取一个名字

          61            cache_peer  192.168.2.103  parent 80   0  originserver         //定义后端真实服务器信息,默认没有,需自己手动添加,原始的服务器是192.168.2.103

          64            cache_dir ufs /var/spool/squid 200 16 256                           //硬盘缓存,缓存容量为200M,自动创建16个一级子目录和256个二级子目录

5、启动squid服务,并设置为开机启动:

        systemctl start squid; systemctl enable squid

6、squid服务通过TCP 80端口监听客户端请求,可以用下面的命令来查看

        netstat  -anptu  |  grep 80

四、测试

    客户端192.168.4.101访问192.168.4.102,开启浏览器访问,返回的页面是192.168.2.103的页面。因为我这里没有做DNS,所以直接用IP来访问


注:squid代理主要是用磁盘空间来做缓存