Linux下如何搭建Squid代理服务器(linux,squid,服务器,开发技术)

时间:2024-05-09 05:02:45 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Squid是基于Unix的代理服务器(proxy server),它缓存比起点源点更接近请求者的互联网内容。Squid支持缓存多种不同的网络对象,包括那些通过HTTP和FTP访问的人。缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。

Linux下如何搭建Squid代理服务器
img

1.1 工作流程

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

当代理服务器中没有客户端需要的数据时: \1. 客户端向代理服务器发送数据请求; \2. 代理服务器检查自己的数据缓存; \3. 代理服务器在缓存中没有找到用户想要的数据; \4. 代理服务器向Internet 上的远端服务器发送数据请求; \5. 远端服务器响应,返回相应的数据; \6. 代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。 Linux下如何搭建Squid代理服务器 Squid代理服务器工作在TCP/IP的应用层。 Linux下如何搭建Squid代理服务器

1.2 Squid 分类

按照代理类型的不同,可以将Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。 • 普通代理:需要客户机在浏览器中指定代理服务器的地址、端口; • 透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理; • 反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

二、系统环境

操作系统:CentOS release 6.5 Squid版本:squid-3.1.10-20.el6_5.3.x86_64 关闭httpd 关闭防火墙

三、安装Squid服务

3.1 检查squid软件是否安装

#rpm-qa|grepsquid

3.2 如果未安装,则使用yum 方式安装

#yum-yinstallsquid

3.3 设置开机自启动

#chkconfig--level35squidon//在3、5级别上自动运行squid服务

四、squid服务器的配置文件说明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的设定都是在这个文件里配置,下面是一些常用的配置选项。

http_port3128//设置监听的IP与端口号cache_mem64MB//额外提供给squid使用的内存,squid的内存总占用为X*10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),//比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。maximum_object_size4MB//设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘minimum_object_size0KB//设置squid磁盘缓存最小文件maximum_object_size_in_memory4096KB//设置squid内存缓存最大文件,超过4M的文件不保存到内存cache_dirufs/var/spool/squid10016256//定义squid的cache存放路径、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量logformatcombined%>a%ui%un[%tl]"%rm%ruHTTP/%rv"%Hs%h""%{User-Agent}>h"%Ss:%Sh//log文件日志格式access_log/var/log/squid/access.logcombined//log文件存放路径和日志格式cache_log/var/log/squid/cache.log//设置缓存日志logfile_rotate60//log轮循60天cache_swap_high95//cache目录使用量大于95%时,开始清理旧的cachecache_swap_low90//cache目录清理到90%时停止。acllocalnetsrc192.168.1.0/24//定义本地网段http_accessallowlocalnet//允许本地网段使用http_accessdenyall//拒绝所有visible_hostnamesquid.david.dev//主机名cache_mgrexample@test.com//管理员邮箱

五、普通代理服务

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

5.1 配置Squid 代理服务器IP地址

将eth2的IP地址修改为200.168.10.1

#ifconfigeth2200.168.10.1
Linux下如何搭建Squid代理服务器
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

5.2 编辑squid 主配置文件/etc/squid/squid.conf

http_port3128cache_mem64MBmaximum_object_size4MBcache_dirufs/var/spool/squid10016256access_log/var/log/squid/access.logacllocalnetsrc192.168.1.0/24http_accessallowlocalnethttp_accessdenyallvisible_hostnamesquid.david.devcache_mgrmchina_tang@qq.com

5.3 初始化

#squid-z
Linux下如何搭建Squid代理服务器
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

5.4 启动Squid

#/etc/init.d/squidstart

5.5 配置Web 服务器

A. 安装Apache

#rpm-qa|grephttpd#yum-yinstallhttpd

B. 启动Apache并加入开机启动

#/etc/init.d/httpdstart#chkconfighttpdon

C. 创建index.html

#echo"Squid-Web1/200.168.10.2">/var/www/html/index.html

D. 修改Web服务器IP地址 将web服务器的IP地址修改为200.168.10.2

#ifconfigeth0200.168.10.2

5.6 配置客户端IP地址

Linux下如何搭建Squid代理服务器
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

5.7 配置浏览器代理

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

5.8 测试

Linux下如何搭建Squid代理服务器
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

六、透明代理服务

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

6.1 修改squid 主配置文件/etc/squid/squid.conf

http_port3128transparentcache_mem64MBmaximum_object_size4MBcache_dirufs/var/spool/squid10016256access_log/var/log/squid/access.logacllocalnetsrc192.168.1.0/24http_accessallowlocalnethttp_accessdenyallvisible_hostnamesquid.david.devcache_mgrmchina_tang@qq.com

在http_port 3128 后添加transparent 关键字。

6.2 reload

reload 让上面的配置生效。

#/etc/init.d/squidreload

6.3 添加iptables规则,把内部的http请求重定向到3128端口

A. 启动iptables 服务

#/etc/init.d/iptablesstart

B. 清除现有iptables filter 表规则

#iptables-F

C. 保存iptables 设置

#/etc/init.d/iptablessave

D. 在nat表中新增一条规则

#iptables-tnat-IPREROUTING-ieth0-s192.168.1.0/24-ptcp--dport80-jREDIRECT--to-port3128

E. 保存

#/etc/init.d/iptablessave

6.4 修改客户端IP地址

将默认网关设置为squid 服务器的内网ip地址。 Linux下如何搭建Squid代理服务器

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

Linux下如何搭建Squid代理服务器
CentOS6 Squid代理服务器的安装与配置CentOS6 Squid代理服务器的安装与配置

七、反向代理服务

为Internet用户访问企业Web站点提供缓存加速。 实验拓扑: Linux下如何搭建Squid代理服务器

7.1 关闭防火墙

#/etc/init.d/iptablesstop

7.2 修改Web Server 主页

Web1:#echo"Squid-Web1/192.168.1.18">/var/www/html/index.htmlWeb2:#echo"Squid-Web1/192.168.1.19">/var/www/html/index.html

7.3 配置squid

http_port80accelvhosthttp_accessallowallcache_peer192.168.1.18parent800originserverround-robinweight=1cache_peer192.168.1.19parent800originserverround-robinweight=1visible_hostnamesquid.david.devcache_mgrmchina_tang@qq.com

7.4 启动Squid服务

Linux下如何搭建Squid代理服务器 squid启动失败,因为上面设定了squid的监听端口是80,和系统的http服务冲突,所以要将http服务停掉,然后再启动squid。

7.6 测试

squid 采用了round-robin,所以客户端的访问将轮询两台web服务器,采用 “Ctrl + F5” 来深度刷新测试。 Web1: Linux下如何搭建Squid代理服务器 Web2: Linux下如何搭建Squid代理服务器


 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Linux下如何搭建Squid代理服务器的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Linux系统之间高效传输的方法是什么下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18