squid和bond

一、简介

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。

Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。

1.工作流程

当代理服务器中有客户端需要的数据时:

a. 客户端向代理服务器发送数据请求;

b. 代理服务器检查自己的数据缓存;

c. 代理服务器在缓存中找到了用户想要的数据,取出数据;

d. 代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:

1. 客户端向代理服务器发送数据请求;

2. 代理服务器检查自己的数据缓存;

3. 代理服务器在缓存中没有找到用户想要的数据;

4. 代理服务器向Internet 上的远端服务器发送数据请求;

5. 远端服务器响应,返回相应的数据;

6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

Squid代理服务器工作在TCP/IP的应用层。

Squid

2. Squid 分类

按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。

  • 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
  • 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;
  • 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。


3.安装Squid服务

3.1 检查squid软件是否安装

# rpm -qa|grep squid

3.2 如果未安装,则使用yum 方式安装

# yum install squid -y


4.squid服务器的配置文件说明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面我们来讲解一下该文件的配置选项。

http_port 3128      //设置监听的IP与端口号 


5.正向代理服务

即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。

反向代理是相对于传统代理而言,是代理web服务器接受客户端的请求。在此,我们忽略客户端的设置,假设客户端是可以直接访问互联网。

web服务器与客户端的结构如下:

假设已经将www.96333.com的域名指向了squid服务器所在的ip,并且在web服务器集群里做了dns轮询。

web server1 -|

web server2 -|- squid 服务器/ INTERNET / - Client

web server3 -|

1.客户端通过IE向DNS服务器发送访问www.96333.com的请求,由客户所在地的DNS服务器解析www.96333.com的IP为2.3.4.5并返回给用户。

2.客户收到DNS返回的服务器IP地址,重新向www.96333.com指向的IP地址发送访问请求。

3.squid 服务器接收到用户的请求后,查询自身缓存中是否有用户请求内容,有则直接发送给客户端,如果没有则通过内部DNS轮询查询空闲服务器,并将客户请求发送到 该服务器,在获取到用户数据并返回给用户的同时保留一份在自己本身的缓存当中。在用户看来,自己访问的是www.96333.com这个服务器,实际上真 正的WEB服务器为SQUID缓存后面的服务器或者服务器集群,通过外部DNS做CNAME转向,将用户请求转发到内部真正的web服务器上去。


实验拓扑图如下:

squid-normal\

5.1 编辑squid 主配置文件/etc/squid/squid.conf

5.2 启动Squid

# /etc/init.d/squid start

5.3 配置Web 服务器

A. 安装Apache

# rpm -qa|grep httpd

# yum -y install httpd

B. 修改Web服务器IP地址

将web服务器的IP地址修改为172.25.254.80

# ifconfig eth0 172.25.254.80


5.5 配置客户端IP地址

#Iifconfig eth0 172.25.254.180


5.6 测试

在浏览器的地址栏输入网址即可看到内容。


6.反向代理服务

为Internet用户访问企业Web站点提供缓存加速。

实验拓扑图如下:

squid-reverse

6.1 关闭防火墙

# /etc/init.d/iptables stop

6.2 修改Web Server 主页

# echo "<h1>Squid-Web1/192.168.1.18</h1>" > /var/www/html/index.html

6.3 配置squid 

6.4 启动Squid服务

squid启动失败,因为上面设定了squid的监听端口是80,和系统的http服务冲突,所以要将http服务停掉。

6.5 squid 启动失败,将系统开机自启动的apache服务关闭。

6.6 测试


网卡的链路聚合

通俗的讲就是,一块网卡挂掉了,另一块网卡可以接替它继续工作。

将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。

1.创建bond0配置文件
vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0  --物理设备名字
IPADDR=192.168.1.1 --IP地址
NETMASK=255.255.255.0 --子网掩码
NETWORK=192.168.1.0 --所属子网
BROADCAST=192.168.1.255 --广播地址
GATEWAY=192.168.1.254 --网关
ONBOOT=yes --随机启动
BOOTPROTO=none 
USERCTL=no --是否允许非root用户控制该设备

2.修改被绑定的eth0和eth1的配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 
USERCTL=no 
ONBOOT=yes 
MASTER=bond0    ***
SLAVE=yes    ***
BOOTPROTO=none 
HWADDR=00:15:17:CC:FC:35

eth1的配置文件与之相同,只是device的值改为eth1即可。

3.装在bond模块驱动
编辑/etc/modprobe.conf或者/etc/modules.conf文件,加入如下内容,使系统启动时加载bonding模块驱动

alias bond0 bonding 
option bond0 miimon=100 mode=1

4.在/etc/rc.d/rc.local文件中加入如下语句,使得系统启动自动运行

ifenslave bond0 eth0 eth1
route add -net 192.168.1.254 netmask 255.255.255.0  bond0    #如有需要才加该路由

5.检测、验证配置
首先执行命令装载bonding模块:modprobe bonding
重启网络服务,并确认bond0正确启动:service network restart
确认设备已经正确加载:less /proc/net/bonding/bond0
列出所有网口:ifconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值