973114 发表于 2018-12-28 08:12:14

CentOS7上实现Squid缓存服务器的两种模式

  一、缓存代理概述
Squid服务作为应用层的代理服务软件,Squid主要提供缓存加速和应用层过滤控制的功能。
  二、代理的基本类型
根据实现的方式不同,代理服务可以分为传统代理和同名代理两种行间的代理服务
  1.传统代理:也就是普通的代理服务,首先必须在客户机的浏览器、下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理服务来访问网络。对于网页浏览器,访问网站时的域名解析请求也会发送给指定的代理服务器。
2.透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向,实际上仍然交给代理服务器来处理。重定向的过程对客户机来说是“透明”的,用户甚至并不知道自己在使用代理服务,所以称为“透明代理”。使用代理时,网页浏览器访问网站时域名解析请求将优先发给DNS服务器。
  Squid安装包链接: https://pan.baidu.com/s/1msvOkRBGuWWkoGyrfO7qYA 提取码: 4rqs
  实验环境:一台CentOS做Squid服务,一台CentOS7提供Apache服务,一台Windows7
  三、操作步骤
1.安装Squid服务
http://i2.运维网.com/images/blog/201810/01/cd8806a5efdd3123333a2f37dcdaecd5.png
首先安装编译环境 gcc gcc-c++ make。把解压下来的Squid手工编译安装。
http://i2.运维网.com/images/blog/201810/01/27dc5766fb0c36de1c8fc0247d8652a3.png
建立软链接方便系统识别。创建squid用户来管理Squid服务。给文件设置squid用户的权限。
http://i2.运维网.com/images/blog/201810/01/62a6c2a31c7aa3fd52aac0e77b27c3d9.png
对/etc/squid.conf这个文件修改内容,首先设置允许所有来访问。
http://i2.运维网.com/images/blog/201810/01/66e1a355e9dfc9146afba76202230b09.png
指定端口、用户和组
http://i2.运维网.com/images/blog/201810/01/e40e4b724516ac06852afc71da9a63ef.png
初始化缓存目录并启动服务
http://i2.运维网.com/images/blog/201810/01/de0d560c54aa516aa8ed76fd05bb8d78.png
为了方便管理squid可以写一个运行脚本来管理。脚本在Squid数据包里。这里就不展示了。
http://i2.运维网.com/images/blog/201810/01/8652c52d9cd1700fcce282ed39c5652a.png
脚本写完后为了方便service所能识别添加名称,并设置开机自启动。当然脚本写完,还要给执行权限。之后就可以用service来启动squid服务了。
到这里Squid服务就算安装完毕了,下面要进行的是设置传统代理。
  2.传统代理设置
http://i2.运维网.com/images/blog/201810/01/b9ca4659c733d6ceff354ff7c9acfba1.png
到/etc/squid.conf主配置文件修改如上内容
http://i2.运维网.com/images/blog/201810/01/90e4210633c419ca2910ce3fce1ff61f.png
清空防火墙策略。在INPUT中对于tcp协议,目标端口是3128,做一个允许转发。
http://i2.运维网.com/images/blog/201810/01/9ebf62f835bb130c129e7b5dc6e9719c.png
在另一台服务器上提供一个Apache就可以了,关闭防火墙。
http://i2.运维网.com/images/blog/201810/01/13db55b5439117e62649e74ceda1dfed.png
设置代理服务器的地址和端口。在地址栏输入Web服务器地址
http://i2.运维网.com/images/blog/201810/01/9f58ea66aeb98eacef8f5648f3317551.png
http://i2.运维网.com/images/blog/201810/01/721d614e839ef64ae7bf6f27f6a6bce6.png
通过Apache的日志文件看到是通过代理服务器来访问的。
  2.透明代理
在做透明带里之前要对Squid服务器在添加一块网卡。其中Squid服务器上一块网卡是要作为Web服务器的网关。另一块作为客户端的网关
http://i2.运维网.com/images/blog/201810/01/582e48e92dd527e8a353a885d4cfc1c8.png
安装完Squid服务后。在/etc/squid.conf下修改如上内容。
http://i2.运维网.com/images/blog/201810/01/48227c9126ee0448984493a55ece7695.png
初始化缓存目录并开启服务
http://i2.运维网.com/images/blog/201810/01/bc501b70730afbbed6b7fb907c77a4ed.png
既然squid服务器做了网关,自然要帮别人转发数据包。之后在清空防火墙策略。
http://i2.运维网.com/images/blog/201810/01/fa63de34feee1e2ce64889de9eee70c0.png
这三条协议的意思是:
在INPUT中对于tcp协议,目标端口是3128,做一个允许转发。
对于nat表PREROUTING链指定内网口是ens33,对于源地址端口为100段没指定协议为tcp指定目标端口为80重定向到3128端口。
对于nat表PREROUTING链指定内网口是ens33,对于源地址端口为100段没指定协议为tcp指定https为443端口重定向到3128端口
http://i2.运维网.com/images/blog/201810/01/df6913ed23fa1169339b7c97a563e7db.png
在客户机上访问Web地址后。再通过Apache的日志文件来查看是不是Squid来访问的。



页: [1]
查看完整版本: CentOS7上实现Squid缓存服务器的两种模式