Linux下squid代理缓存服务环境部署

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

Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

一、工作流程

当代理服务器中有客户端需要的数据时:
1)客户端向代理服务器发送数据请求;
2)代理服务器检查自己的数据缓存;
3)代理服务器在缓存中找到了用户想要的数据,取出数据;
4)代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:
1)客户端向代理服务器发送数据请求;
2)代理服务器检查自己的数据缓存;
3)代理服务器在缓存中没有找到用户想要的数据;
4)代理服务器向Internet 上的远端服务器发送数据请求;
5)远端服务器响应,返回相应的数据;
6)代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

Linux下squid代理缓存服务环境部署

二、squid分类
按照代理类型的不同,可以将Squid代理分为正向代理和反向代理。

正向代理根据实现方式的不同,又可以分为普通代理和透明代理。
1)普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
2)透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

三、squid代理缓存环境部署过程:
1)关闭selinux和iptables
[root@server~]# vim /etc/sysconfig/selinux
…….
SELINUX=disabled
[root@server~]# /etc/init.d/iptables stop

2)检查squid软件是否安装
[root@server~]# rpm -qa|grep squid

3)如果未安装,则使用yum 方式安装
[root@server~]# yum -y install squid

4) 设置开机自启动,在3、5级别上自动运行squid服务
[root@server~]# chkconfig –level 35 squid on

5)squid服务器的配置文件说明
squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,这里squid配置如下:
[root@server~]# vim /etc/squid/squid.conf
http_port 3128    #设置监听的IP与端口号
cache_mem 64 MB   #额外使用内存量,可根据你的系统内存在设定,一般为实际内存的1/3.比如这里内存是200M,这里设置1/3就是64MB
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 %h” “%{User-Agent}>h” %Ss:%Sh #log文件日志格式
access_log /var/log/squid/access.log combined  #log文件存放路径和日志格式
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 wangshibo@huanqiu.com  #管理员邮箱

四、普通代理服务
即标准的、传统的代理服务,需要客户机在浏览器中指定代理服务器的地址、端口。
实验拓扑图如下:

Linux下squid代理缓存服务环境部署

 

7) 配置浏览器代理
打开浏览器(以IE为例,其他类似),菜单栏 -> 工具 -> Internet 选项 -> 连接 -> 局域网设置 -> 代理服务器,按照以下格式设置。

9

 

五、透明代理服务
适用于企业的网关主机,客户机不需要指定代理服务器地址、端口等信息,通过iptables将客户机的Web访问数据转交给代理服务程序处理。
实验拓扑图如下:

Linux下squid代理缓存服务环境部署

5) 在浏览器中,取消代理设置

16

6) 测试

20

透明代理测试成功。

 

六、反向代理服务
为Internet用户访问企业Web站点提供缓存加速。
实验拓扑图如下:

28

Web2:

27

6)查看squid 的访问日志。

26

 

七、实际应用
下面实验将模拟通过不同的域名访问不同的机器,简单实现企业应用中的负载均衡。客户端在浏览器地址栏中输入www.squid.dev,将访问192.168.1.18这台机器,访问bbs.squid.dev,将访问192.168.1.19这台机器。
实验拓扑图如下:

32

4) 测试网络情况 

33

5) 测试www.squid.dev

34

6) 测试bbs.squid.dev

35

7) 查看squid 访问日志

36

8) 查看两台服务器的apache 访问日志

[root@server~]# tailf /var/log/httpd/access.log

40

测试成功。

 

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧*************** 本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5991274.html ,如需转载请自行联系原作者 文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8581 人正在系统学习中 相关资源:实例讲解分布式缓存软件Memcached的Java客户端使用-其它代码类…

来源:weixin_33725272

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年10月1日
下一篇 2017年10月1日

相关推荐