首页 > 系统 > Linux > 正文
Squid代理
2017-05-19 10:00:00       个评论    来源:xiaojun_Fairy的博客  
收藏    我要投稿

什么是Squid

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

本地服务器 ——访问—>squid服务器——访问——>远程服务器
本地服务器 ——访问—>squid服务器<——缓存——远程服务器

正向代理

正向代理 Squid被数以百计的网络提供商用来为他们的用户提供最好的网页访问,为了提升性能和常用内容来减少带宽squid充分利用客户端和服务端的数据流。Squid还能路由内容请求到服务器,以各种方式构建缓存服务器多层次结构,优化网络吞吐量。

1.配置

以下操作在真机中进行
[root@foundation60 ~]# yum install squid -y ##下载squid服务
[root@foundation60 ~]# systemctl start squid ##开启squid
[root@foundation60 ~]# netstat -antlpe | grep squid ##查看squid端口
tcp6 0 0 :::3128 :::* LISTEN 0 157781 15783/(squid-1)
[root@foundation60 ~]# vim /etc/squid/squid.conf ##编辑配置文件

设定禁止被访问的网址
52 acl badurl dstdomain .baidu.com ##设定baidu的所有网站都不能被客户端访问
53 http_access deny badurl ##禁止badurl
54 http_access allow localnet ##允许本地网访问
55 http_access allow localhost ##允许本地主机访问

设定可允许通过本服务器远程访问缓存
61 http_port 3128 ##允许通过3128端口
64 cache_dir ufs /var/spool/squid 100 16 256 ##缓存的所在目录,100表示缓存所能缓存的大小是100M,16表示16个主目录,256表示256个子目录
这里写图片描述
[root@foundation41 ~]# systemctl restart squid ##重启服务
这里写图片描述

2.测试

以下操作在虚拟机
ping www.baidu.com
ping www.qq.com
无法ping通说明不能连接上
这里写图片描述
打开虚拟机浏览浓ky"/kf/ware/vc/" target="_blank" class="keylink">vc8YnIgLz4NCmVkaXQgJm5kYXNoOyZndDtQcmVmZXJlbmNlczxiciAvPg0KPGltZyBhbHQ9"这里写图片描述" src="/uploadfile/Collfiles/20170518/20170518095949719.png" title="\" />
–>Settings…
这里写图片描述
然后
www.baidu.com 说明不允许访问百度
这里写图片描述
www.qq.com 可以访问腾讯
这里写图片描述

反向代理

反向代理(网站内容加速和分发)Squid是一个支持HTTP, HTTPS, FTP的web缓存代理,它能通过缓存和反复使用频繁访问的网页来减少带宽、提高响应速度。
首先重置虚拟机,确保没有httpd服务

配置

[root@localhost ~]# yum install squid ##下载squid
[root@localhost ~]# systemctl start squid.service ##开启squid服务
[root@localhost ~]# vim /etc/squid/squid.conf ##编辑配置文件
59 http_port 80 vhost vport ##80端口
60 cache_peer 172.25.254.140 parent 80 0 no-query ##访问172.25.254.140
64 cache_dir ufs /var/spool/squid 100 16 256 ##缓存文件
这里写图片描述
[root@localhost ~]# systemctl restart squid.service

配置140虚拟机:
这里写图片描述

测试:
在客户端编辑
[root@foundation60 ~]# vim /etc/hosts
172.25.254.133 www.westos.com
这里写图片描述
然后用浏览器访问
这里写图片描述

这里写图片描述

轮叫调度
轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。

这里我们模拟两个服务器的轮叫

[root@localhost ~]# vim /etc/squid/squid.conf ##编辑配置文件
60 cache_peer 172.25.254.140 parent 80 0 no-query originserver name=web1 round-robin weight=3 ##轮叫三次
61 cache_peer 172.25.254.60 parent 80 0 no-query originserver name=web2 round-robin weight=1 ##轮叫一次
62 cache_peer_domain www.westos.com web1 web2 ##建立web1 web2 的轮叫
这里写图片描述
[root@localhost ~]# systemctl restart squid.service

配置140主机:
编辑默认访问文件
这里写图片描述

配置60主机:
编辑默认访问文件
这里写图片描述

测试:
在客户端编辑
[root@foundation60 ~]# vim /etc/hosts
172.25.254.133 www.westos.com
这里写图片描述
然后用浏览器访问
172.25.254.140
这里写图片描述
172.25.254.60
这里写图片描述

访问www.westos.com
这里写图片描述
刷新一次后
这里写图片描述
刷新三次后
这里写图片描述

点击复制链接 与好友分享!回本站首页
上一篇:【shell】判断文件中是否存在字符串
下一篇:Docker和k8的基本操作
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站