本文主要是介绍squid 和squid 集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文只是为了详细了解squid的集群负载均衡的配置而模拟出来的一个实验环境。目的是想深入了解squid反向代理以及squid集群负载均衡的配置。也是对近期squid学习成果的检验,准备的环境比较简单,可能没有实用价值,只是了解其配置思路。
背景描述:
一家公司要提供互联网服务,为了保证访问性能,采用squid反向代理来实现,来提高性能。想像架构图如下:
(1)公司域名www.abc.com,通过dns轮循的方式,指向A,B两台squid反向代理服务器。
(2)A,B squid反向代理服务器的环境如下,他们分别代理内网的两台web服务器,web1,web2,两台web服务器内容同步,实现高可能性与负载均衡,web服务器的架构在些不做绍。
A:squid反向代理服务器
IP:192.168.129.21/24(外网ip)
192.168.1.1(内网ip)
B:squid反向代理服务器
IP:192.168.129.22/24(外网ip)
192.168.1.2(内网ip)
web1:
IP:192.168.1.20
web2:
IP:192.168.1.30
squid反向代理负载均衡配置
分别在A,B上安装Squid,配置好相关环境。
1.A服务器squid配置如下:
vi /etc/squid/squid.conf
http_port 192.168.129.21:80 vhost /*监听本机所有接口*/
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.24.68
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.1
cache_mgr abc@126.com
#将icp通讯端口设置为3130,squid之间缓存同步查询数据时用的。
icp_port 3130
#A反向代理的内部服务器
cache_peer 192.168.1.20 parent 80 0 no-query originserver no-digest name=a
cache_peer 192.168.1.30 parent 80 0 no-query originserver no-digest name=b
#连接本地的与另一台Squid工作在sibling模式,实现数据的调取
cache_peer 192.168.129.21 sibling 80 3130 name=cache1
cache_peer 192.168.129.22 sibling 80 3130 name=cache2
acl Safe_ports port 80
acl Safe_ports port 3130
#允许以上端口的代理
cache_peer_domain a www.abc.com
cache_peer_domain b www.abc.com
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer_access a allow all
cache_peer_access b allow all
2.B服务器squid配置如下:
vi /etc/squid/squid.conf
http_port 192.168.129.22:80 vhost /*监听本机所有接口*/
cache_mem 64 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 202.103.24.68
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
visible_hostname 192.168.1.2
cache_mgr abc@126.com
icp_port 3130
cache_peer 192.168.1.20 parent 80 0 no-query originserver no-digest name=a
cache_peer 192.168.1.30 parent 80 0 no-query originserver no-digest name=b
cache_peer 192.168.129.21 sibling 80 3130 name=cache1
cache_peer 192.168.129.22 sibling 80 3130 name=cache2
acl Safe_ports port 80
acl Safe_ports port 3130
cache_peer_domain a www.abc.com
cache_peer_domain b www.abc.com
acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer_access a allow all
cache_peer_access b allow all
案例配置分析:
squid1和squid2是姐妹关系,squid1,squid2和squid是父子关系,squid与web也是父子关系.
[IP分配信息]
squid 192.168.5.163
squid1 192.168.5.161
squid2 192.168.5.165
web 192.168.5.162
根据上面的案例,在实际应用中可以实际各种不同应用。
======
squid1
======
http_port 80 accel vhost vport
icp_port 3130
cache_peer 192.168.5.161 parent 80 0 no-query originserver no-digest name=cache0
cache_peer 192.168.5.161 sibling 80 3130 name=cache1
cache_peer 192.168.5.163 sibling 80 3130 name=cache2
cache_peer 192.168.5.165 sibling 80 3130 name=cache3
cache_peer_domain cache0 www.squid.com
acl Safe_ports port 80
acl Safe_ports port 3130
======
squid2
======
http_port 80 accel vhost vport
icp_port 3130
cache_peer 192.168.5.165 parent 80 0 no-query originserver no-digest name=cache0
cache_peer 192.168.5.161 sibling 80 3130 name=cache1
cache_peer 192.168.5.163 sibling 80 3130 name=cache2
cache_peer 192.168.5.165 sibling 80 3130 name=cache3
cache_peer_domain cache0 www.squid.com
acl Safe_ports port 80
acl Safe_ports port 3130
======
squid
======
http_port 80 accel vhost vport
icp_port 3130
cache_peer 192.168.5.163 parent 80 0 no-query originserver no-digest name=cache0
cache_peer 192.168.5.161 sibling 80 3130 name=cache1
cache_peer 192.168.5.163 sibling 80 3130 name=cache2
cache_peer 192.168.5.165 sibling 80 3130 name=cache3
cache_peer_domain cache0 www.squid.com
acl Safe_ports port 80
acl Safe_ports port 3130
这篇关于squid 和squid 集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!