首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>网络管理>linux服务器>正文

Linux下利用Squid构建高速的Proxy Server

http://www.oklinux.cn  2007-08-28  赛迪网 kid  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

 

  一、什么是Proxy Server(代理服务器),Proxy的作用 
 
  在真实世界中我们常常会去帮人家办一些事情,例如帮人家交电费什么的,在这种情况下你不是电表的主人,而是代办者(代理者)的身份。在网络世界中Proxy就是相当于那个帮人家交电费的人了,当我们发出连接请求的时候,就会通过Proxy去帮我们直接与目标服务器沟通,帮我们取得资料。    

  client通过Proxy Server上网的步骤如下:

  ①client端向Server发出请求。
  ②Server收到请求后比较判断Cache中时候存在client想要的资料,如果没有则向远程Server发送数据请求。
  ③将请求回来的资料先存放到Cache中,再将资料传送给client端。
  ④当client发出的请求中所需要的资料在Cache中有,则将Cache中的资料直接传送给client端。

  虽然当第一访问这向Proxy请求的数据Cache中没有时,Proxy抓取数据后会先保存在Cache中,这样访问速度变慢了,可是第二个访问者以及后来的访问者需要该资料的时候,proxy都不要想远程服务器请求,直接将cache中的资料发送给后来的请求者就行了,这样就减少了连接远程服务器的流量,另外由于proxy是在本地的,所以传输速度也更快。

  二、使用Squid在构建Proxy Server

  本文中笔者所使用的环境是:
 
  操作系统: Redhat 9.0,内核:2.4.20-31.9,其他系统套件已经通过apt更新到最新了。
 
  1.编译安装Squid

  由于Squid对系统硬件要求比较高,所以我们安装的时候应尽量优化。

  CODE:#groupadd squid
  #useradd squid
  添加suqid用户和用户组

  CODE:#export CFLAGES=’-O2 -mcpu=pentium4 -march=pentium4 -mmmx -msse -msse2’
 
  可以根据你的CPU选择相应的参数GCC-3.1以上可針對CPU最佳化:

CODE:Pentium2: -O2 -mcpu=i686 -march=i686 -mmmx 
Pentium3: -O2 -mcpu=pentium3 -march=pentium3 -mmmx -msse
Pentium4: -O2 -mcpu=pentium4 -march=pentium4 -mmmx -msse -msse2 
#./configure --prefix=/usr/local/squid --enable-gnuregex --enable-async-io=80 --enable-icmp --enable-kill-parent-hack --enable-snmp --disable-ident-lookups --enable-cahce-digests --enable-arp-acl --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese"  --enable-poll --enable-linux-netfilter --enable-underscore
#make
#make install
 
  我个人安装软件都比较喜欢用源码包自己编译,觉得这样知道你自己在做什么,用rpm包好像不知道做什么的就安装好了。下面我们对各个编译参数进行解释,当然你可以通过./configure --help来查看其他的参数,以及各个参数的英文解释。
  prefix=/usr/local/squid  :指定软件的安装路径
  enable-gnuregex  :由于Squid大量使用字符串处理做各种判断,加入此项能更好的处理。
 
  enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs。
 
  enable-icmp  :加入icmp支持。
 
  enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦。
 
  enable-snmp  :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
 
  disable-ident-lookups  :防止系统使用RFC931规定的身份识别方法。
 
  enable-cahce-digests  :加快请求时,检索缓存内容的速度。
 
  enable-arp-acl  :可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
 
  enable-err-language="Simplify_Chinese" 和enable-default-err-languages="Simplify_Chinese" :指定出错是显示的错误页面为简体中文
  enable-poll  :应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。
  enable-linux-netfilter :可以支持透明代理
  enable-underscore  :允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。

  这里我们就安装好了,接下来就是修改配置文件了。

  2.修改定义配置参数
 
  下面是我的squid.conf文件

CODE:# NETWORK OPTIONS(有关的网络选项) 
# ------------------------------------------------
http_port 3128  #代理端口
icp_port 3130  #icp端口

# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM(作用于邻居选择算法的有关选项)
#---------------------------------------------------
#禁止缓存
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https:\\ ?
acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi
acl denyssl urlpath_regex -i ^https:\\
no_cache deny QUERY
no_cache deny denyssl
#上面几个就是说遇到URL中有包含cgi-bin和以https:\\开头的都不要缓存,
#还有asp、cgi、php等动态脚本也不要缓存,
#因为这些脚本通常都是动态更新的,这样数据不同步。
#还有http://开通的不缓存是因为一般我们进行电子商务交易,
#例如银行付款等都是采用这个的,如果把信用卡号什么缓存那不是很危险。

上一篇:详细介绍Linux操作系统下的USB硬件设备驱动   下一篇:在Ubuntu Linux 7.04系统下配置Ruby环境

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux系统网络服务器配置基础(下)
·Linux系统网络服务器配置基础(上)
·Linux Samba Server的配置方法详细解析
·Linux系统Qmail邮件服务器安装过程解析
·在AS4上架设QMAIL+反病毒垃圾模块的方法
·运行于Unix下非常优秀的Web服务器 Zeus
·Linux下VPN服务器的配置方法介绍
·Linux系统上2.4和2.6内核Web服务比较
·Linux操作系统NFS配置部署过程
·Linux系统下配置DNS服务器的方法介绍
·Linux上Apache+PHP4.0+Sybase的安装文档
·Linux系统下VPN服务器配置方法介绍
·详解远程SHELL下安装配置RedHat ES 5的JSP环境与Oracl
·Linux服务器前台常出现的错误提示及含意
·无错版Vsftpd+Mysql+Pam配置虚拟用户方法
·路由器和防火墙软件coyote Linux配置指南
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·利用VSFTP架设Linux环境下的FTP服务器
·Linux下安装Apache 2.2.6 笔记
·Linux下的主要VPN技术
·Linux下Samba服务器搭建实例
·用Sendmail在Linux下架设邮件服务器
·2009服务器盘点:再见Sun 再见麦克利尼
·SUSE 10上做VPN服务器
·在Ubuntu 9.10中打造带tdbsam Backend
·Ubuntu服务器上SSH Server 的安装配置
·Nginx 禁止某个 User_Agent 的方法
·Linux-Apache-MySQL-PHP网站架构方案分
·Nginx 对某些 User_Agent 进行限速的方
  阅读排行
·Linux系统下架设APACHE SVN服务器全过
·Linux下用vsftp轻松搭建FTP服务器(修订
·Ubuntu下安装tftp服务器的步骤
·Linux 下配置vsftp虚拟用户总结
·详解远程SHELL下安装配置RedHat ES 5的
·Linux下安装eclipse与myeclipse
·Linux DNS Server -bind 9.5.0 安装配
·Linux与Linux,Linux与Windows之间使用S
·Ubuntu上搭建SVN服务器全攻略
·LVS集群学习笔记(NAT\DR\IP tunnel)
·Linux下tomcat启动jvm内存设置
·Linux shell 中FTP实现自动下载上传文
·安装大型Linux集群(4):节点安装和 GPFS
·Linux系统下架设PPTP VPN服务器
·Linux系统中下查看内存的方法
网摘收藏: