squid配置详解 | 您所在的位置:网站首页 › squid配置证书 › squid配置详解 |
一、简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。 Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。 1.1 工作流程 当代理服务器中有客户端需要的数据时: a. 客户端向代理服务器发送数据请求; b. 代理服务器检查自己的数据缓存; c. 代理服务器在缓存中找到了用户想要的数据,取出数据; d. 代理服务器将从缓存中取得的数据返回给客户端。 当代理服务器中没有客户端需要的数据时: 1. 客户端向代理服务器发送数据请求; 2. 代理服务器检查自己的数据缓存; 3. 代理服务器在缓存中没有找到用户想要的数据; 4. 代理服务器向Internet 上的远端服务器发送数据请求; 5. 远端服务器响应,返回相应的数据; 6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。 Squid代理服务器工作在TCP/IP的应用层。 1.2 Squid 分类 按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。官方地址:http://www.squid-cache.org/ 参考文档:http://www.squid-cache.org/Doc/config/ 二、系统环境 操作系统:CentOS release 6.4 (Final) Squid版本:squid-3.1.10-20.el6_5.3.x86_64 SELINUX=disabled HTTP Service: stoped 三、安装Squid服务 3.1 检查squid软件是否安装 # rpm -qa|grep squid 3.2 如果未安装,则使用yum 方式安装 # yum -y install squid 3.3 设置开机自启动 # chkconfig --level 35 squid on //在3、5级别上自动运行squid服务 四、squid服务器的配置文件说明 squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面我们来讲解一下该文件的配置选项。 D. 修改Web服务器IP地址 将web服务器的IP地址修改为200.168.10.2 # ifconfig eth0 200.168.10.2 5.6 配置客户端IP地址 5.7 配置浏览器代理 打开浏览器(以IE为例,其他类似),菜单栏 -> 工具 -> Internet 选项 -> 连接 -> 局域网设置 -> 代理服务器,按照以下格式设置。 5.8 测试 测试成功。 5.9 测试错误页面 在Oracle VM VirtualBox里,因为上面手动设置了ip地址,导致外网不能访问,刚好可以测试访问出错的页面。 可以看到在squid 配置文件里设置的参数在错误页面里的显示。 六、透明代理服务 适用于企业的网关主机,客户机不需要指定代理服务器地址、端口等信息,通过iptables将客户机的Web访问数据转交给代理服务程序处理。 实验拓扑图如下: 6.1 修改squid 主配置文件/etc/squid/squid.conf 在http_port 3128 后添加transparent 关键字。 6.2 reload reload 让上面的配置生效。 # /etc/init.d/squid reload 6.3 添加iptables规则,把内部的http请求重定向到3128端口 A. 启动iptables 服务 # /etc/init.d/iptables start B. 清除现有iptables filter 表规则 # iptables -F C. 保存iptables 设置 # /etc/init.d/iptables save D. 查看nat 表设置 # iptables -t nat -L -n E. 在nat表中新增一条规则 # iptables -t nat -I PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 F. 保存 G. 设置iptables 开机启动 # chkconfig iptables on 6.4 修改客户端IP地址 将默认网关设置为squid 服务器的内网ip地址。 6.5 在浏览器中,取消代理设置 6.6 测试 透明代理测试成功。 七、反向代理服务 为Internet用户访问企业Web站点提供缓存加速。 实验拓扑图如下: 7.1 关闭防火墙 # /etc/init.d/iptables stop 7.2 修改Web Server 主页 Web1: # echo "Squid-Web1/192.168.1.18" > /var/www/html/index.html Web2: # echo "Squid-Web1/192.168.1.19" > /var/www/html/index.html 7.3 配置squid 7.4 启动Squid服务 squid启动失败,因为上面设定了squid的监听端口是80,和系统的http服务冲突,所以要将http服务停掉。 7.5 squid 启动失败,将系统开机自启动的apache服务关闭。 7.6 测试 squid 采用了round-robin,所以客户端的访问将轮询两台web服务器,采用 "Ctrl + F5" 来深度刷新测试。 Web1: Web2: 查看squid 的访问日志。 八、实际应用 下面实验将模拟通过不同的域名访问不同的机器,简单实现企业应用中的负载均衡。客户端在浏览器地址栏中输入www.squid.dev,将访问192.168.1.18这台机器,访问bbs.squid.dev,将访问192.168.1.19这台机器。 实验拓扑图如下: 8.1 修改Web Server 主页 Web1: # echo "www.squid.dev/192.168.1.18" > /var/www/html/index.html Web2: # echo "bbs.squid.dev/192.168.1.19" > /var/www/html/index.html 8.2 配置Squid 8.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 |
CopyRight 2018-2019 实验室设备网 版权所有 |