Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->服务器 ->正文

Linux架设代理服务器(1)

来源:linuxdby.com 作者:Webmaster 时间:2007-04-12 点击: [收藏] [投稿]

  3.收到响应的web页面后,代理服务器把该数据传送给客户端。
  4.客户端浏览器显示该页面。
  
  从www.linuxaid.com.cn的角度看来,连接是在1.2.3.4地1088端口和202.99.11.120的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1066端口和202.99.11.120的80端口之间建立的。
  
  以上就是传统代理服务器和透明代理服务器的区别所在。
  
  二、各种代理服务器的比较
  
  linux下的代理服务器软件很多,我从www.freshmeat.com(一个著名的linux软件站点)查看了一下,足有六十多个。但是被广泛应用的只有Apache、socks、squid等几个实践证明是高性能的代理软件。下面我们分别来比较一下这几个软件:
  
  2.1 Apache
  
  Apache是世界上用的最广泛的HTTP服务器,之所以用的最广泛,是因为它强大的功能、高效率、安全性和速度。从1.1.x版本开始,Apache开始包含了一个代理模块。用Apache作代理服务器的性能优势并不明显,不建议使用。
  
  
  2.2 Socks
  
  Socks是一种网络代理协议,该协议可以让客户机通过Socks服务器获得对Internet的完全访问能力。Scoks在服务器和客户端之间建立一个安全的代理数据通道,从客户的角度看来,Scoks是透明的;从服务器的角度看来,Socks就是客户端。客户端不需要具有对Internet的直接访问能力(也就是说,可以使用私有IP地址),因为Socks服务器能够把来自于客户端的连接请求重定向到Internet。此外,Socks服务器可以对用户连接请求进行认证,允许合法用户建立代理连接。同理,Socks也能防止非授权的Internet用户访问及的内部网络。所以常常把Socks当作防火墙来使用。
  常见的浏览器如netscape、IE等可以直接使用Socks, 并且我们也可以使用socsk5的所带的client来使那些不直接支持socks的internet软件使用Socks。
  更多的资料可以参考Socks官方站点http://www.socks.nec.com。
  
  2.3 Squid
  
  对于web用户来说,Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
  Squid把数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。
  Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
  
  2.4 选择
  
  从上面的比较可以看出,Apache主要功能是web服务器,代理功能只不过是其一个模块而已,Socks虽然强大,但有欠灵活,因此我们着重推荐你使用Squid。下面的章节我们就一起来学习Squid激动人心的特性及相关的安装与配置。
  
  三、安装Squid Proxy Server
  
  3.1获取软件
  
  你可以通过以下途径获取该软件:
  1.从Squid的官方站点http://www.squid-cache.org下载该软件;
  2.从你的linux发行版本中获取该软件;
  通常,Squid软件包有两种:一种是源代码,下载后需要自己重新编译;可执行文件,下载后只需解压就可以使用;另一种是就是RedHat所使用的rpm包。下面我们分别讲讲这两种软件包的安装方法。
  
  3.2安装软件
  
  我们以目前最新的稳定版本squid-2.3.STABLEX为例。
  
  3.2.1rpm包的安装
  
  1.进入/mnt/cdrom/RedHat/RPMS
  2.执行rpm -ivh squid-2.2.STABLE4-8.i386.rpm。
  当然,我们也可以在开始安装系统的过程中安装该软件。
  
  3.2.2 源代码包的安装
  
  1.从http://www.squid-cache.org下载squid-2.3.STABLE2-src.tar.gz。
  2.把该文件拷贝到/usr/local目录。
  3.解开该文件 tar xvzf squid-2.3.STABLE2-src.tar.gz。
  4.解开后,在/usr/local生成一个新的目录squid-2.3.STABLE2,为了方便用mv命令把 该目录重命名为squid mv squid-2.3.STABLE2 squid;
  5.进入squid cd squid
  6.执行./configure 可以用./confgure --prefix=/directory/you/want指定安装目录
  系统缺省安装目录为/usr/local/squid。
  7.执行 make all
  8.执行 make install
  9.安装结束后,squid的可执行文件在安装目录的bin子目录下,配置文件在etc子目录下。
  
  四、配置squid基础篇——让代理服务器跑起来
  
  由于RedHat各方面的优势(包括易用性,稳定性等等),全世界范围内使用该发行版的用户比较多,所以,我们下面的说明都是以RedHat6.1环境下squid-2.2.STABLE4-8版本为主。从我的使用经验看来,该版本的squid要比其他版本稳定的多,以前的1.1.22版本也比较稳定,但是在功能及灵活性方面有所欠缺。
  squid有一个主要的配置文件squid.conf,在RedHat环境下所有squid的配置文件位于/etc/squid子目录下。
  
  4.1常用的配置选项
  
  因为缺省的配置文件有问题,所以我们必须首先修改该配置文件的有关内容,以便让squid跑起来。
  下面我们来看一看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 (外部支持程序选项)

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇: 用Linux建立局域网服务器   下一篇: Linux架设代理服务器(2)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号