一、导言
代理服务器的全称是ProxyServer,其功能是代理网络用户获取网络信息。
Squid是一个缓存互联网 数据的软件。它接收用户的下载应用程序,并自动处理下载的数据。当用户想要下载一个主页时,可以向Squid发送一个应用,要求Squid 改为下载,然后Squid连接到应用的网站并请求主页,然后将主页发送给用户,同时保留一个备份。当其他用户申请同一个页面时,Squid 会立即将保存的备份发送给用户,让用户觉得相当快。Squid可以代理HTTP、FTP、GOPHER、SSL、WAIS等协议,Squid 可以自动处理。可以根据自己的需要设置鱿鱼,过滤掉不想要的东西。
1.1工作流
当代理服务器中的拥有客户端所需的数据时:
A.客户端向代理服务器发送数据请求;
b、代理服务器检查自己的数据缓存;
c.代理服务器在缓存中找到用户想要的数据并取出;
D.代理服务器将从缓存中获取的数据返回给客户端。
当代理服务器中的没有客户端所需的数据时:
1.客户端向代理服务器发送数据请求;
2.代理服务器检查自己的数据缓存;
3.代理服务器在缓存中找不到用户想要的数据;
4.代理服务器向互联网上的远程服务器发送数据请求;
5.远程服务器响应并返回相应的数据;
6.代理服务器获取远程服务器的数据,将其返回给客户端,并在其自己的数据缓存中保存一份副本。
Squid代理服务器工作在TCP/IP的应用层。
1.2鱿鱼分类
Squid代理根据代理类型的不同可以分为正向代理和反向代理,正向代理根据实现方式的不同可以分为普通代理和透明代理。
文件:http://www.squid-cache.org/Doc/config/
二。系统环境
*** 作系统:CentOS版本6.4(最终版)
鱿鱼版本:squid-3.1.10-20.el6_5.3.x86_64
SELINUX=禁用
HTTP服务:已停止
三。安装Squid服务
3.1检查是否安装了squid软件。
#rpm-qa|grepsquid
3.2如果没有安装,使用yum安装。
#yum-y安装鱿鱼
3.3一开始就设定开机。
//上的#chkconfig-level35squid自动运行3级和5级的squid服务。
四。squid服务器配置文件的描述
squid的主要配置文件是/etc/etc/squid/squid.conf。所有squid设置都在该文件中配置。让我们解释一下这个文件的配置选项。
http_port 3128 //设置监听的IP与端口号 MB maximum_object_size 4 MB //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘 minimum_object_size 0 KB //设置squid磁盘缓存最小文件 maximum_object_size_in_memory 4096 KB //设置squid内存缓存最大文件,超过4M的文件不保存到内存 cache_dir ufs /var/spool/squid 100 16 256 //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量 logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh //log文件日志格式 /var/log/squid/access.log combined cache_log /var/log/squid/cache.log //设置缓存日志 logfile_rotate 60 //log轮循 60天 cache_swap_high 95 //cache目录使用量大于95%时,开始清理旧的cache cache_swap_low 90 //cache目录清理到90%时停止。 acl localnet src 192.168.1.0/24 //定义本地网段 http_access allow localnet //允许本地网段使用 http_access deny all //拒绝所有 visible_hostname squid.david.dev //主机名 cache_mgr mchina_tang@qq.com //管理员邮箱关于ACL的知识,可以自己去百度咨询。更多高级选项,请参考官方文件:http://www.squid-cache.org/Doc/config/.
注:squid2.0和squid3.0还是有很大区别的,如果配置后Squid没有正确启动,请参考官方文档的相应版本说明。
五.一般代理服务
也就是说,标准和传统的代理服务要求客户端在浏览器中指定代理服务器的地址和端口。
实验拓扑图如下:
5.1配置Squid代理服务器的IP地址
将eth1的IP地址更改为200.168.10.1。
#ifconfigeth1200.168.10.1
5.2编辑squid主配置文件/etc/etc/squid/squid.conf
http_port 3128 cache_mem 64 MB maximum_object_size 4 MB cache_dir ufs /var/spool/squid 100 16 256 access_log /var/log/squid/access.log acl localnet src 192.168.1.0/24 http_access allow localnet http_access deny all visible_hostname squid.david.dev cache_mgr mchina_tang@qq.com5.3初始化
#鱿鱼–z
5.4启动鱿鱼
#/etc/init.d/squidstart
5.5配置Web服务器
A.安装Apache
#rpm-qa|grephttpd
#yum-y安装httpd
B.启动Apache并加入引导启动。
#/etc/init.d/httpdstart
#chkconfighttpd打开
C.创造index.html
#echo"<h1>鱿鱼网1/200.168.10.2<;/h1>;">/var/www/html/index.html
D.修改Web服务器的IP地址
将web服务器的IP地址更改为200.168.10.2。
#ifconfigeth0200.168.10.2
5.6配置客户端IP地址
5.7配置浏览器代理
打开浏览器(以IE为例,其他都差不多),菜单栏->:工具->:互联网选项->;连接->:局域网设置->:代理服务器,按照以下格式设置。
5.8测试
测试成功了。
5.9测试错误页面
在OracleVMVirtualBox中,由于ip地址是在上面手动设置的,无法访问外网,所以只能测试有访问错误的页面。
您可以在错误页面中看到squid配置文件中设置的参数的显示。
六。透明代理服务
适用于企业的网关主机。客户端不需要指定代理服务器地址、端口等信息,客户端的Web访问数据通过iptables传递给代理服务程序进行处理。
实验拓扑图如下:
在http_port3128之后添加透明关键字。
重新加载
Reload使上面的配置生效。
#/etc/init.d/squid重新加载
6.3添加iptables规则,将内部http请求重定向到端口3128。
A.启动iptables服务
#/etc/init.d/iptablesstart
B.清除现有的iptables过滤表规则
#iptables-F
C.存储iptables设置
#/etc/init.d/iptables保存
D.检查nat表设置
#iptables-tnat-L-n
E.在nat表中添加规则。
#iptables-tNAT-Iprerouting-Ieth0-s192.168.1.0/24-pTCP-dport80-j重定向到端口3128
F.救援
G.将iptables设定为开始。
#chkconfigiptableson
6.4修改客户端IP地址
将默认网关设置为squid服务器的intranetip地址。
6.5在浏览器中,取消代理设置
6.6测试
透明代理测试成功。
七。反向代理服务
为互联网用户访问公司网站提供缓存加速。
实验拓扑图如下:
7.1关闭防火墙
#/etc/init.d/iptables停止
7.2修改Web服务器的主页
网站1:
#echo"<h1>鱿鱼网1/192.168.1.18<;/h1>;">/var/www/html/index.html
网站2:
#echo"<h1>鱿鱼-web1/192.168.1.19<;/h1>;">/var/www/html/index.html
7.3配置squid
7.4启动Squid服务
Squid启动失败,因为上面设置的squid的监听端口是80,与系统的http服务冲突,应该停止http服务。
7.5squid启动失败,自系统启动后关闭了apache服务。
7.6测试
Squid使用循环法,因此客户端将轮询两个web服务器,并使用“Ctrl+F5”来深度刷新测试。
网站1:
Web2:
检查squid的访问日志。
八。实际应用
下面的实验将模拟通过不同的域名访问不同的机器,简单实现企业应用中的负载均衡。在客户端地址栏输入www.squid.dev,你会在192.168.1.18,bbs.squid.dev和192.168.1.19访问这台机器。
实验拓扑图如下
8.1修改Web服务器的主页
网站1:
#echo"<h1>www.squid.dev/192.168.1.18</h1>;">/var/www/html/index.html
网站2:
#echo"<h1>bbs.squid.dev/192.168.1.19</h1>;">/var/www/html/index.html
8.2配置Squid
http_port 80 accel vhost http_access allow all cache_peer 192.168.1.18 parent 80 0 originserver name=www cache_peer 192.168.1.19 parent 80 0 originserver name=bbs cache_peer_domain www www.squid.dev cache_peer_domain bbs bbs.squid.dev visible_hostname squid.david.dev cache_mgr mchina_tang@qq.com8.3配置客户端
您可以在这里使用DNS服务来解决它,为了方便起见,我们直接在hosts文件中指定它。
修改c:\windows\system32\drivers\etc\hosts文件
8.4测试网络状况
8.5测试www.squid.dev
8.6测试bbs.squid.dev
8.7检查squid访问日志
8.8检查两台服务器的apache访问日志
#tailf/var/log/httpd/access.log
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)