squid配置过程.doc_第1页
squid配置过程.doc_第2页
squid配置过程.doc_第3页
squid配置过程.doc_第4页
squid配置过程.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

squid配置过程安装:%tar xzf squid-2.0.RELEASE-src.tar.gz %cd /usr/local/squid/src/ squid-*.*.RELEASE / %./configure %make %make install 简单配置:http_port:设定Squid监听的端口,你最好设一个比较好记的端口号,以便在进行客户机配置时容易记住。我的机器上端口号设的是8080。缺省为3128。 cache_mem:设定Squid占用的物理内存,根据我的经验,cache_mem的大小不应超过你的服务器物理内存的三分之一,否则将会影响机器的总体性能。 maximum_object_size:设定Squid可以接收的最大对象的大小。Squid缺省值为4M,我自己入认为太大,你可以根据自己的需要进行设定。 cache_dir:设定缓存的位置、大小。一般看起来形式如下“cache_dir /usr/local/squid/cache 100 16 256”。 /usr/local/squid/cache代表缓存的位置;100代表缓存最大为100M;16和256代表一级和二级目录数。 (cache_dir /usr/local/squid/cache 100 16 256)cache_effective_user:设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没有用户nobody,最好建一个或以非root用户运行Squid。在/etc/squid/squid.conf文件中修改# TAG: visible_hostname# If you want to present a special hostname in error messages, etc,# define this. Otherwise, the return value of gethostname()# will be used. If you have multiple caches in a cluster and# get errors about IP-forwarding you must set them to have individual# names with this setting.#Default:# heber#在这里加一句,后面改成你的主机IP地址。visible_hostname 运行:首先以root身份登陆。运行如下命令: /usr/local/squid/bin/squid -z 该命令会产生Squid所有的缓存目录。 如果你想前台执行Squid,接着执行命令: /usr/local/squid/bin/squid -NCd1 该命令正式启动Squid。如果一切正常,你会看到一行输出 Ready to serve requests. 如果想后台运行Squid,把它做为一个精灵进程,执行命令: /usr/local/squid/bin/squid 观察Squid是否运行使用命令: % squid -k check 输出会告诉你Squid的当前状态。 错误信息:# /usr/local/sbin/squid -z 如果得到“Permission denied”的出错信息,如: 09:09:29| Creating Swap Directories FATAL: Failed to make swap directory /usr/local/squid/cache/00: (13) Permission deniedSquid Cache (Version 2.1):Terminated abnormally. CPU Usage: 0.022 seconds Maximum Resident Size: 1000 KB Page faults with physical i/o: 0 则可能是以下原因之一: 磁盘上没有空间了。 (对此我无能为力) 没有建立/usr/local/squid/logs/目录。 (手工建一个嘛) 您的/usr/local/squid/logs/cache.log文件属于root。 (可以用这条命令“chown nobody.nogroup /usr/local/squid/logs/cache.log”改一下,另外./log和./cache目录里的 所有文件都要有此属性。) 于是我查了一下这些目录中的文件,的确都属于root,所以我用了这两条命令: # chown nobody.nogroup /usr/local/squid/logs# chown nobody.nogroup /usr/local/squid/cache 然后再试一下建立Cache目录: # /usr/local/sbin/squid -z 2001/01/01 09:14:32| Creating Swap Directories 这次运行顺利!dns_nameservers 8 visible_hostname 北京网通DNS: 北京 33 33 95 squid配置在Linux下的详细配置介绍Squid工作原理 Squid 启动之后,会在 RAM 建立一个 Hash Table,记录硬盘中 object 配置的情形。 Squid 又会在 RAM 中建立一个 Digest Table(摘要表) ,其功能是和其他有合作关的 Squid (Sibling)互相交换 Digest Table,万一用户端想要的资料自己没有时,可以很快的知道哪一部 Squid Server 有资料(Squid 也可以透过 ICP 向其他 Squid 查询,但速度较慢)。但是 Digest Table 本身不小,既记忆体又频宽,如果 Server 的内存不够,对外带宽不够,反而比 ICP 查询更慢。 Squid安装的种类【可能不太合适叫做种类,不过没有更好的词。语文太差_】 child、sibling、parent 关系如下:Squid Server 之间的第一种关系是:Child 和 Parent。当 Child Squid Server 没有资料时,会直接向 Parent Squid Server 要资料,然後一直等,直到 Parent 给它资料为止。Squid Server 之间的第二种关系是:Sibling 和 Sibling。当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要或上 internet 去拿。 一般 Squid Server 运作的模式是: 1. 当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要。 2. 向 Parent 要资料,然後一直等,直到 Parent 给它资料为止(Parent 自己有的资料或上 internet 去拿)。 3. 没有 Parent 时,就自己上 internet 去拿。 4. 如果这三者都拿不到资料,才向用户端回报拿不到资料。编译安装Squid./configure -prefix=/usr/local/squid-ip -enable-async-io=160 -enable-icmp -enable-kill-parent-hack -enable-cache-digests -enable-default-err-language=Simplify_Chinese -enable-poll & make & make install-enable-async-io=160:这项主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器很强劲,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了(不要太贪心哦_)。-enable-icmp:加入icmp。默认不加。-enbale-kill-parent-hack:当kill掉nobody的squid进程的时候会同时杀死它的父进程。-enable-cache-digests:【。】-enable-default-err-language=Simplify_Chinese:当有错误的时候在页面中显示简体中文。【不过squid还是会无情的把所有语言都装上,看的不顺的话手工删咯】-enable-poll:可以提升效能。Squid的结构介绍:安装好的目录在/usr/local/squid-10 (这里假设我的主ip最后一段是10)Squid的结构是: bin/:放置squid默认写好的启动脚本。有RunAccel;RunCache;squidclient;前2个启动Squid可以使用,因为当squid进程死了后,这个脚本可以自动检测到。 RunAccel是用于web 加速用的脚本,而RunCache是用于做squid代理用的,squidclient是用本机做squid测试的。 etc/:squid.conf在这个目录中 libexec/:函数库; man/:帮助文件。不用说了吧。 sbin/ :squid命令所在目录。一般如果我用来测试就启动squid命令。或者用这个命令创建swap,或者加-k参数重启之类的操作。 share/ :一些错误显示的html都在里面; var/ :log,pid,swap都在这个目录中!先看squid的一个重要的,对我来说也是唯一需要配置的一个配置文件。选项非常多,当然,默认的squid.conf文件中对于每一个选项都有比较详细的说明,但是我还是想把我理解的以及必须要进行配置的选项罗列出来,以免过段时间自己都忘了_以下的配置我是要向sina,sohu,163学习的web server的架构,试着自己去搭建一个这样的环境来看看效果到底如何。因此这里的squid不是用来做代理的,而是反向作为网站高速缓存。其实原理差不多,只是方向反一反而已,相信都能理解这点的。使用的测试服务器为Dell 2650 双CPU至强2.4G 内存DDR 2G。OS为Freebsd 5.2.1(这里需要说明的是,从实际使用情况来看,squid跑在freebsd上的效果是最快最好的。这是由os的文件系统所决定的,千万不能用,solaris,感觉solaris的文件系统实在太慢,虽然非常稳定,而且跑多线程的效果是最好的。linux嘛没有进行测试,不过感觉在freebsd之下,solaris之上。)Squid.conf的几个重要参数的配置说明 http_port 4:80 #Squid Server侦听的端口。假设我的主页的dns server 指到4上的,因此我必须让squid来侦听这个IP的这个端口。cache_mem 32 MB #要额外提供多少内存给squid使用,这里的额外是指squid会将最常用的一些缓存放到这块内存中。这个指令也是我看了官方文档后才理解的。因为一开始从实际使用情况来看,我这边设32M的话,用top命令来查看一般会达到100M左右。这点让我让我很想不通,呵呵。然后就去看官方文档,发觉squid是这样来计算使用多少内存的:squid本身的进程大概10M-20M,然后下面我设的cache目录的大小是500M的话,那他放在内存里的hash索引大概需要20M左右,然后再加上这里设置的cache_mem的值。官方文档建议你的实际内存大小应该是这个squid所需要总内存的2倍以上。自己量力而为吧。cache_mem当然是越大越好了。cache_dir ufs /usr/local/squid-54/var/cache 500 16 256 #设置squid存放cache目录的位置以及大小。第一个数字500是指目录的总大小为500M(默认为100M),第二个数字16是指第一级目录为16个,第三个数字256是指第二级目录为256个我个人觉得如果网站访问量大,并且内容很多的话,可以考虑将默认的100M改大一点,否则会报错。我就经历过,错误我忘了记录了(该死!)大致就是说超过Max的极限了,当时查了半天才找到罪魁祸首是这条指令,惭愧。cache_access_log nonecache_log nonecache_store_log none #我是将这些log记录都关了, 有需要的可以将它们打开。acl managerIP src 0acl ipcanbrows dst /24 #acl应该是squid配置里面最难理解也最需要花时间的地方了。应该说只需要修改很小的一部分就可以了,像这里我只是在原来的基础上加了2条记录,前面一条的意思是我定义了0为源路径,另外一条是指目的端是/24这个网段。而managerIP,ipcanbrows随便取得名字。具体的规则需要下面的语句来定义。0就是本服务器的内网ip,而apache server的ip就在/24这个网段里,不需要用外网ip,一定程度上节约了ip地址。http_access allow manager managerIP ipcanbrows localhost #加上2个允许就可以了。高深的配置我觉得我也不需要,用户可以访问就达到目的了:)httpd_accel_host virtual #由于我后面的apache server是基于ip来做虚拟主机的,因此这里需要设置成virtual。httpd_accel_port 80 #http加速的端口,因为习惯等原因,还是将后面的apache server监听80端口。httpd_accel_uses_host_header on #如果选了virtual的话,这里必须设置成on。这里最多只列出了5%左右的选项,但是我配置的时候就只是用到了这些,因此,如果做网站加速的话,基本设置就是这些。当然需要更强劲的功能的话就需要好好读读squid的配置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论