Http反响代理
1 案例1:反向代理
1.1 问题
通过配置代理服务器,实现以下目标:
代理服务器可以将远程的Web服务器页面缓存在本地
代理服务器端口设置为80端口
用户通过访问代理服务器即可获得远程Web服务器上的页面内容
远程Web服务器对客户端用户是透明的
利用缓存机制提高网站的响应速度
1.2 方案
使用3台RHEL7虚拟机,其中一台作为Squid代理服务器,该服务器用来连接两个网段,因此需要配置两块网卡,地址分别为192.168.4.5和192.168.2.5。一台作为客户端测试主机,IP地址为192.168.4.100。一台Web服务器,地址为192.168.2.100,该Web服务器为其他代理提供Web数据源,拓扑如图-1所示。
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:构建web服务器
1)使用yum安装web软件包
[root@web ~]# yum -y install httpd
[root@web ~]# rpm -q httpd
2)启用httpd服务,并设为开机自动运行
[root@web ~]# systemctl restart httpd ; systemctl enable httpd
httpd服务默认通过TCP 80端口监听客户端请求:
[root@web ~]# netstat -anptu | grep 80
tcp6 0 0 :::80 :::* LISTEN 4206/httpd
3)为Web访问建立测试文件
在网站根目录/var/www/html下创建一个名为index.html的首页文件:
[root@web ~]# cat /var/www/html/index.html
1176693506
步骤二:部署Squid代理服务器
1)使用yum安装squid软件包:
[root@squid ~]# yum -y install squid
[root@squid ~]# rpm -q squid
squid-3.3.8-26.el7.x86_64
2)修改/etc/squid/squid.conf配置文件:
[root@squid ~]# tail -5 /etc/squid/squid.conf
visible_hostname svr5.sumo.com
cache_peer 192.168.2.100 parent 80 0 originserver
cache_mem 128 MB
cache_dir ufs /var/spool/squid 200 16 128
http_access allow all
3)启动squid服务,并设置为开机启动:
[root@squid ~]# systemctl restart squid ; systemctl enable squid
4)squid服务通过TCP 80端口监听客户端请求:
[root@squid ~]# netstat -anptu | grep squid
tcp6 0 0 :::80 :::* LISTEN 3769/(squid-1)
步骤三:客户端测试
通过/etc/hosts文件,配置域名解析,将域名解析为Squid服务器IP地址
[root@squid ~]# elinks --dump http://svr5.sumo.com
1176693506