squid 和squid 集群

2024-03-06 03:18
文章标签 集群 squid

本文主要是介绍squid 和squid 集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.Squid是什么?
[1] Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人
们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想
下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如
:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据
到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地
从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FT
P,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的
东西。
2.Internet缓冲的一些概念
你可能会想到一些问题:缓冲有多大的用处?什么时候目标(object)应该或者不
应该被缓冲?例如,缓冲信用卡号码是完全不适合的,脚本文件的执行结果在远程服务
器端,站点经常更新(象www.cnn.com)或者甚至站点不允许缓冲,这些情况也都是不
适合缓冲的。
Squid处理各种情况是不错的(当然,这需要远程站点按标准形式工作)。
可执行的cgi-bin脚本文件不被缓冲,返回正确页眉的页面是在一段限制了的时间
内被缓冲,而且你可以规定特殊的规则以确定什么是可以或不可以被缓冲的,还有缓冲
的时间为多长。
谈到缓冲的用处有多大,这要看Internet的容量大小,各有不同。对于小型的缓冲
区(几转磁盘空间)来说,返回值非常高(达到25%)。这个空间缓冲经常访问的站点
,如netscape,cnn和其它一些类似情况的站点。如果你增加一倍缓冲的磁盘空间,但
你不会成倍增加你的命中率。这是因为你开始缓冲网络中剩余部分时,这些通常时很大
的而且很少被访问。一个非常大的高速缓冲区,有20转左右,可能返回值仍小于50%,
除非你对保存数据的时间长短经常改变(一般地你不要分配20转的磁盘空间,因为页面
很快就会过时,应该被删除掉)。
我们在这里说的目标(object)指的是可保存的web页面或其它类似的可下载页面
(ftp文件或目录内容也称为目标(object))。
3.Squid运行在什么系统上?
Squid可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:
Windows,AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris
4.Squid的下载和获取
squid在诸多unix like系统上都有软件库的提供,比如在ubuntu可以使用apt install squid进行安装,也可以到squid的官网直接下载二进制的编译好的软件包,

本文只是为了详细了解squid的集群负载均衡的配置而模拟出来的一个实验环境。目的是想深入了解squid反向代理以及squid集群负载均衡的配置。也是对近期squid学习成果的检验,准备的环境比较简单,可能没有实用价值,只是了解其配置思路。

背景描述:
一家公司要提供互联网服务,为了保证访问性能,采用squid反向代理来实现,来提高性能。想像架构图如下:

squid负载均衡集群 - koumm - koumm的博客

(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

案例配置分析:
squid负载均衡集群 - koumm - koumm的博客

 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 集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/778715

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软

用Cri-O,Sealos CLI,Kubeadm方式部署K8s高可用集群

3.6 Cri-O方式部署K8s集群 注意:基于Kubernetes基础环境 3.6.1 所有节点安装配置cri-o [root@k8s-all ~]# VERSION=1.28[root@k8s-all ~]# curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensu