响应我党号召,全面建设和谐博客,坚持和谐写博的路线不动摇
第 8 章 测试并运行Squid 1.前期准备 想要测试Squid是否正常,必须要先把www.naizhao.com这个域名解析到2.2.2.2这个IP上。跟上一章一样,如果你是网通用户就不需要做任何操作,DNSPod会给你返回2.2.2.2这个IP。如果你是电信用户,或者解析出来的IP不是2.2.2.2,那么就要修改系统的hosts表,对应记录添加进去。跟上一章不一样,上一章修改的是Squid服务器的hosts表,你现在需要修改的是你用来测试Squid的系统的hosts表。 除了修改hosts表外,我们还需要一个名为curl的小工具。一般的Linux/Unix系统都附带了这个工具,如果使用Windows,那么需要到下面的地址下载一个,并且放到D:\(或者其他地方,自己喜欢)。 http://curl.haxx.se/latest.cgi?curl=win32-nossl (32位系统) http://curl.haxx.se/latest.cgi?curl=win64-nossl (64位系统) 下载回来解压后,我们只需要一个curl.exe。 2.运行Squid 我们继续用上一章的方法,用调试方式启动squid cd /usr/local/squid/sbin ./squid -Nd 1 然后打开浏览器,输入http://www.naizhao.com,看输出的网页是否正确。 如果能显示出正常的页面,那么说明squid已经正常运行了。但我们还需要确认一下,所需要的页面是否已经被squid缓存了。 3.测试Squid 我们使用curl,输入下面的命令(Windows用户请使用命令行来运行curl) curl -I http://www.naizhao.com/ HTTP/1.0 200 OK Date: Sun, 08 Jul 2007 12:16:27 GMT Server: NaiZhao Web Server/1.0.0 Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT ETag: “7665b-1983-4417e480″ Accept-Ranges: bytes Content-Length: 6531 Vary: Accept-Encoding [...]
第 7 章 配置Squid 1.设置hosts表 首先我们要明白一下squid在CDN中扮演的角色。squid在CDN中其实只是一个代理+缓存。跟一般的代理服务器类似,squid代替用户向真正有内容的服务器进行请求,并且缓存下来。所不同的是,squid是作为一个类似apache一样的web服务器存在,用户访问的时候并不感觉到是访问了一台代理服务器,而是一个真实的web服务器。一般情况下,我们把这种方式称之为“反向代理”。 所以,我们需要让squid知道内容要到哪里去取。因为我们已经把域名naizhao.com设置了智能DNS,而且这台squid服务器也是网通的,按照正常的dns解析,会把naizhao.com解析为2.2.2.2这个IP(也就是网通机器本身)。但这个IP上面并不存在任何所需要的内容,所有需要的内容其实是在1.1.1.1上(源服务器)。所以我们需要为naizhao.com固定一个IP,也就是1.1.1.1。 让系统得到这个IP的方法有两种,一种是设置hosts表,另外一种是系统里面搭建一个dns服务器。Windows下大家应该会经常去编辑到hosts文件,linux下同样也存在这个文件,我们在前面的vim教程中已经提到过。搭建dns系统这个方法工程太过庞大,还是编辑hosts文件相对来说比较简单,所以我们就采用编辑hosts表的方法。 linux下面的hosts表位于/etc/hosts,格式跟Windows大致相同,打开后我们把下面一行加到末尾 1.1.1.1 naizhao.com www.naizhao.com cnc.naizhao.com 如果已经按照前面的教程,添加过1.1.1.1这条记录的,修改为上面的样子。 2.设置squid squid的配置文件位于/usr/local/squid/etc/squid.conf,打开后会有英文的详细说明。暂时我们不需要去理解这个文件里面各个配置的含义,相信大家看到一大堆英文都会头大的。大家只需要知道如何把squid按照自己的需求跑起来,并且不出错就好。 我们先用rm命令把squid.conf删掉。不用怕删掉后找不回来,还有一个默认的squid.conf.default在呢。一般的linux程序,包括apache等,都会有一个.default的默认文件,方便大家恢复默认设置,或者作为一个修改的参考。 squid.conf删掉后,我们再用vi squid.conf,新建这个文件,然后把下面的内容帖进去,保存 http_port 80 vhost vport=80 acl apache rep_header Server ^Apache broken_vary_encoding allow apache cache_mem 1024 MB maximum_object_size 4096 KB minimum_object_size 0 KB maximum_object_size_in_memory 256 KB cache_dir ufs /var/spool/squid 20480 16 256 cache_swap_low 80 cache_swap_high 97 strip_query_terms off [...]
第 6 章 编译并安装Squid 首先使用tar把源代码压缩包解压 tar zxvf squid-2.6.STABLE13.tar.gz 解压后,我们得到一个名为 squid-2.6.STABLE13 的目录。进入目录 cd squid-2.6.STABLE13 在configure前,我们必须要先设置cflags,这里我们假设CPU是intel core duo的,cpu family 6,model 14。通过 http://gentoo-wiki.com/Safe_Cflags#Intel_Core_Solo.2FDuo 可以找到对应的优化参数 CHOST="i686-pc-linux-gnu" CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" 然后通过export命令设置 export CHOST="i686-pc-linux-gnu" export CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer" export CXXFLAGS="${CFLAGS}" 设置完成后,我们可以通过env命令来查看是否设置成功。 然后,我们开始configure源代码。使用下面的命令,把squid安装到/usr/local/squid目录中去。 ./configure –prefix=/usr/local/squid –enable-follow-x-forwarded-for –enable-storeio=aufs,ufs –with-maxfd=65536 –with-pthreads –enable-dlmalloc –enable-poll –enable-stacktraces –enable-removal-policies=heap,lru –enable-delay-pools 对应参数的作用可以使用./configure –help得到。 这里大家要注意下,configure前面还有一个./,这个代表当前目录。意思是当前目录下面的configure文件。linux如果要执行当前目录的文件,必须要加上./。如果要执行当前目录下的下级目录里面的文件,可以不用加,比如bin/run。当然,./bin/run也是一样的效果。 接着我们会看到屏幕向下翻滚,出现一大堆checking for [...]
第 5 章 安装Squid的前期准备 从本章开始,大家将会学到如何在Linux下面安装、编译程序,还会学到程序编译的优化方法,最后会通过源代码编译的方式把Squid安装上。 1.Linux下面程序安装的基本知识 A.程序安装包的分类 平时大家在Windows下面安装程序,一般都是直接运行安装程序,然后安装程序会把编译好的二进制文件拷贝到系统里面,最终完成安装过程。 Linux下面,安装程序的自由度比Windows要大。因为Linux下面大部分东西都是开源的,所以程序的提供方式一般是二进制包或者源代码包。 二进制包,同样会有不同的打包和管理方式(类似于zip、rar,但更加先进)。最常见的两种软件包为rpm(redhat、suse等系统采用的包)和deb(debian、ubuntu)。机器上面安装的软件包多了,自然需要一个软件来进行管理、更新。所以就有了yum(rpm)、apt(deb)这样的软件包管理、升级软件。 源代码包,这样的包比较简单,一般都是直接把源代码打包成一个压缩文件,后缀一般是tar.gz或者tar.bz2 通过包管理软件安装软件比较简单,设置好软件的安装源后,可以使用下面的命令安装软件: yum install php (yum) apt-get install php5(apt) 如果不知道需要安装的软件包确切名字,可以使用下面的方法搜索: yum search php(yum) apt-cache search php(apt) 本文章主要探讨源代码包的安装。 B.通过源代码包安装程序 一般情况下,程序从源代码到能正常使用,需要经过三个步骤:1.根据系统环境对源代码进行配置(configure);2.编译程序(make);3.安装程序(make install)。 a.源代码配置 通过运行configure脚本,可以对所需要编译的程序的一些基本环境、所使用到的命令、库等文件进行自动查找,并且生成用于编译文件所需要的Makefile文件。因为Linux有太多的发行版本了,每个版本的环境都不一样,所以需要用到这个脚本。通过configure脚本还可以对程序的模块进行自定义,可以禁用或者激活某个功能。 b.编译程序 根据configure脚本生成的Makefile文件,对源代码进行编译、链接,生成二进制文件。但这个时候的二进制文件一般来说还不能使用。 c.安装程序 通过make install命令,把编译好的二进制文件安装到相应的路径,这个时候程序才真正可以使用。 C.程序安装到哪里? 一般编译安装的程序都会安装到/usr/local下面。比如php就会被安装到/usr/local/bin/php,php.ini会被安装到/usr/local/lib/php.ini,等等。如果需要指定安装目录,在configure的时候指定–prefix参数,会把所有文件都安装到prefix目录中。比如./configure –prefix=/usr/local/php。那么会把所有文件都安装到这个目录,最后看起来会是/usr/local/php/bin/php和/usr/local/php/lib/php.ini D.如何得到configure的参数? 常用的configure参数有–prefix,可以通过./configure –help得到更多的参数。一般带有–enable-、–with-开头的参数都是启用某个功能,–disable-、–without-开头的都是禁用某个功能。 E.如何删除安装好的程序? Linux删除程序跟Windows不太一样。Windows建议使用卸载功能卸载程序,Linux下通过包管理软件安装的程序也可以直接用命令删除,例如: yum remove php(yum) apt-get remove php5(apt) 如果通过源代码包安装的程序,一般会带有make uninstall,通过这个命令可以删除所安装的文件。如果不带有make uninstall,那么可以直接把程序安装目录删除。 注意:如果是依赖库(比如php如果要使用到mysql的功能,必须要先安装mysql,然后在配置php的时候指定mysql库的路径,那么php就是依赖了mysql),删除被依赖的程序,那么用到依赖库的程序都将会无法使用(比如删除mysql后,php将无法正常使用mysql部分的功能)。 [...]
最近常常有朋友来问我,新章节什么时候能出来,会不会太监。这点大家可以放心,文章这几天一直在写。但因为文章涉及到大量Linux知识,而且文章本身是面对没有Linux基础的站长,所以大量的时间都花在如何让站长们入门,能让站长看懂。自己第一次写了这么多字,难免会有很多准备上的不足,还请大家多多包涵。奶罩在此谢过了!