设为首页收藏本站language 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2638|回复: 0
收起左侧

Squid代理服务器部署使用攻略

[复制链接]
发表于 2010-9-16 10:46:08 | 显示全部楼层 |阅读模式
Linux下的代理服务器软件很多,但是被广泛应用的只有Squid、socks、Apache等几个实践证明是高性能的代理软件。  一、各种代理服务器的比较  表-1 Linux下主流代理服务器比较      41.jpg
   
    Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份。当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS协议,暂不能代理POP3、NNTP等协议。Squid可以工作在很多操作系统中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。 Squid支持以下协议:  客户端协议:HTTP、FTP、Gopher、WAIS 、SSL  缓存及管理协议:ICP、Cache Digests、SNMP、HTCP
二、 Squid工作原理和流程图  1.代理服务器的工作机制  代理服务器的工作机制很像我们生活中常常提及的代理商,假设你自己的机器为A机,你想获得的数据由服务器B提供,代理服务器为C,那么具体的连接过程是这样的。首先,A机需要B机的数据,A直接与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。  2.squid工作流程  图1是Squid工作原理图。          42.jpg
    图1 Squid工作原理图  1.客户端计算机向 代理服务器 端发送一个数据需求封包;  2.代理服务器 端接收之后,先比对这个封包的『来源』与预计要前往的『目标』网站是否为可接受?如果来源与目标都是合法的,那么代理服务器 端会预计开始替客户端计算机获取信息。  3.代理服务器首先会到自己的硬盘里面,也就是所谓的 cache (缓存) 查看一下有没有 客户端计算机 端所需要的数据,如果有的话,那就将数据直接送到客户端计算机端,而不向互联网获取信息。  4. 将数据传回给客户端计算机端使用。  5.在经过以上三部查寻知道缓存没有数据,或者数据过期之后,代理服务器会向互联网上面的目标网站要求数据;  6.在将数据取回之后,代理服务器会先将取得的数据储存一份到缓存当中。  7.最后才将数据传回给客户端计算机 端使用。
三、安装和配置Squid 服务器

  通常说来,安装Squid有两种方法:一是从Linux 发行版本中获取该软件的RPM包进行;二是安装从Squid的官方站点http://www.squid-cache.org/ 下载该软件的源码进行编译后安装。目前网上最新的稳定版本为squid-2.6.STABLE10,下面以前者为例进行介绍。首先要确认是否已经安装vsftpd可以使用以下命令查看:

  [rpm -q squid]

  如果在系统安装时已经把squid 安装上了,那么我们就可以直接对squid配置使用了。

  也可以从Squid站点www.squid-cache.org 获取该软件的源代码安装包,包括gz和bz2两种压缩方式。

  配置并保存好squid.conf后,可以用以下命令启动squid。

  或者,使用RHEL 4.0的启动脚本来启动squid。

  /etc/rc.d/init.d/squid start

  同样,也可以用下列脚本停止运行squid或重启动squid。

  /etc/rc.d/init.d/squid stop

  /etc/rc.d/init.d/squid restart

  判断squid已经正常启动方法:分别使用ps命令和netstat命令检查Squid代理组服务器允许情况,和端口使用情况,见图-2。

   

43.jpg


   
    图-2查看Squid服务器运行进程和端口

  如果你的Linux服务器终端桌面出现图2类似的情况表示Squid代理服务器运行正常。

  理解Squid配置文件

  Squid配置文件由一组文件组成见表2。

   

44.jpg


   
    其中最重要的是squid.conf,squid.conf配置文件可以分为十三个部分,这十三个部分分别是:

  1)NETWORK OPTIONS (有关的网络选项)。

  2)OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM (作用于邻居

  选择算法的有关选项)。

  3)OPTIONS WHICH AFFECT THE CACHE SIZE (定义cache大小的选项)。

  4)LOGFILE PATHNAMES AND CACHE DIRECTORIES (定义日志文件的路径cache的目录)。

  5) OPTIONS FOR EXTERNAL SUPPORT PROGRAMS (外部支持程序选项)。

  6) OPTIONS FOR TUNING THE CACHE (调整c a c h e的选项)。

  7) TIMEOUTS(超时)。

  8) ACCESS CONTROLS (访问控制)。

  9) ADMINISTRATIVE PARAMETERS (管理参数)。

  10) OPTIONS FOR THE CACHE REGISTRATION SERVICE (c a c h e注册服务选项)。

  11) HTTPD-ACCELERATOR OPTIONS (H T T P D加速选项)。

  12) MISCELLANEOUS (杂项)。

  13) DELAY POOL PARAMETERS (延时池参数)。

  理解squid的命令启动参数

  Squid有很多命令参数,见图-3。

   
45.jpg



   
    图-3 squid命令选项

  对于Squid命令这里需要了解其参数,在开始其他事情之前,让我们先看一下squid 的命令行选项。这里的许多选项你会经常使用,另外有些仅仅在调试问题时有用。

  squid 命令行选项

  -a port :

  指定新的http_port 值。该选项覆盖了来自squid.conf 的值。然而请注意,你能在quid.conf里指定多个值。-a 选项仅仅覆盖配置文件里的第一个值。(该选项使用字母a 是因为在Harvest cache 里,HTTP 端口被叫做ASCII 端口) 。

  -d level :

  让squid 将它的调试信息写到标准错误(假如配置了,就是cache.log 和syslog)。level参数指定了显示在标准错误里的消息的最大等级。在多数情况下,d1 工作良好。

  -f file :

  指定另一个配置文件。

  -h :

  显示用法。

  -k function

  指示squid 执行不同的管理功能。功能参数是下列之一:reconfigure,rotate,shutdown,interrupt,kill,debug,check,or parse。

  + reconfigure 导致运行中的squid 重新读取配置文件。

  + rotate导致squid 滚动它的日志,这包括了关闭日志,重命名,和再次打开它们。

  + shutdown 发送关闭squid 进程的信号。

  + interrupt 立刻关闭squid,不必等待活动会话完成。

  + kill 发送KILL 信号给squid,这是关闭squid 的最后保证。

  + debug 将squid 设置成完全的调试模式,假如你的cache 很忙,它能迅速的用完你的磁盘空间。

  + check 简单的检查运行中的squid 进程,返回的值显示squid 是否在运行。

  + 最后,parse 简单的解析squid.conf 文件,如果配置文件包含错误,进程返回非零值。

  -s :

  激活将日志记录到syslog 进程。squid 使用LOCAL4 syslog 设备。0 级别调试信息以优先级LOG_WARNING 被记录,1 级别消息以LOG_NOTICE 被记录。更高级的调试信息不会被发送到syslogd.你可以在/etc/syslogd.conf 文件里使用如下接口:

  local4.warning /var/log/squid.log

  -u port:

  指定另一个ICP 端口号,覆盖掉squid.conf 文件里的icp_port。

  -v :

  打印版本信息。

  -z :

  初始化cache,或者交换,目录。在首次运行squid,或者增加新的cache 目录时,你必须使用该选项。

  -C :

  阻止安装某些信号句柄,它们捕获特定的致命信号例如SIGBUS 和SIGSEGV。正常的,这些信号被squid 捕获,以便它能干净的关闭。然而,捕获这些信号可能让以后调试问题困难。使用该选项,致命的信号导致它们的默认动作,通常是coredump。

  -D :

  禁止初始化DNS 测试。正常情况下,squid 直到验证它的DNS 可用才能启动。该选项阻止了这样的检测。你也能在squid.conf 文件里改变或删除dns_testnames 选项。

  -F :

  让squid 拒绝所有的请求,直到它重新建立起存储元数据。假如你的系统很忙,该选项可以减短重建存储元数据的时间。然而,如果你的cache 很大,重建过程可能会花费很长的时间。

  -N :

  阻止squid 变成后台服务进程。

  -R :

  阻止squid 在绑定HTTP 端口之前使用SO_REUSEADDR 选项。

  -V :

  激活虚拟主机加速模式。类似于squid.conf 文件里的httpd_accel_host virtual 指令。

  -X :

  强迫完整调试模式,如你在squid.conf 文件里指定debug_options ALL,9 一样。

  -Y :

  在重建存储元数据时,返回ICP_MISS_NOFETCH 代替ICP_MISS.忙碌的父cache 在重建时,该选项可以导致最少的负载。

  本文介绍了Squid代理服务器的安装,下一篇文章中,接着介绍其如何使用及其注意事项,敬请关注。

    介绍了Squid代理服务器的安装,本文接着介绍其如何使用及其注意事项。
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-28 01:15 , Processed in 0.062993 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表