CentOS 7 Squid代理服务器反向代理

Squid反向代理

将不同的URL请求分发到后台不同的Web服务器上,通过squid反向代理,可以加速网站的访问速度,同时互联网用户只能看到反向代理服务器的地址,加强网站的访问安全

Squid反向代理原理

Squid反向代理服务器位于本地Web服务器和Internet之间,客户端请求访问Web服务器时,DNS将访问的域名解析为Squid反向代理服务器的IP地址,客户端将访问Squid代理服务器。如果Squid反向代理服务器缓存了该请求的资源,则将该请求的资源返回给客户端,否则反向代理服务器将向后台的Web服务器请求资源,然后将应答资源返回给客户端,同时也将该资源在本地缓存一份,供下一个请求使用

实验环境 : 

代理服务器IP(CnetOS7):192.168.94.11(NAT)  192.168.111.11(VMnet3)

客户端IP(Windows):192.168.111.22(VMnet3)  

真实服务器1(CnetOS7):192.168.94.22(NAT)

真实服务器2(CnetOS7):192.168.94.33(NAT)

之前做的透明代理的时候做的防火墙策略 , 要把策略清一下 , 把备份的配置文件还原 , 不然测试会出问题

[root@squit squid]# vim /etc/squid.conf
# 定义两个个基于域名的控制列表,分别命名为web1,web2
acl web1 dstdomain www.damowang.cn
acl web2 dstdomain www.damowang.cn

# 允许以web1,web2为目标域名的访问 http_access allow web1 web2
# 将端口监听在
192.168.94.11的80端口上,accel 指启用加速模式,vhost,vport用于转发请求 http_port 192.168.94.11:80 accel vhost vport
# cache_peer 指定后端服务器地址,
80 为后端服务端口,0 为 ICP 端口号(多个 Squid 时用),originserver 指定资源服务器,round-robin指使用轮询方式,weight指的是权重,自由分配,name 指定一个别名 cache_peer 192.168.94.22 parent 80 0 no-query originserver round-robin weight=1 name=web1 cache_peer 192.168.94.33 parent 80 0 no-query originserver round-robin weight=1 name=web2

 

cache_peer_domain web1 web2 www.damowang.cn  # 再4版本之前是用于域名轮询的 , 现在完全通过访问控制来实现  , 如果加上这句  , 检查语法时会报错

如果用的是新版本的squid 这是需要注意的 

配置Web服务器

[root@web1 ~]# yum -y install httpd
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# echo "<h1>Squid-Web1</h1>" > /var/www/html/index.html

[root@web2 ~]# yum -y install httpd
[root@web2 ~]# systemctl start httpd
[root@web2 ~]# echo "<h1>Squid-Web2</h1>" > /var/www/html/index.html

Windows配置 , 测试

 

客户实际访问的是代理服务器 , 并不知道真实Web服务器的IP

原文地址:https://www.cnblogs.com/bigdevilking/p/9521083.html