Linux Apache Web 服务器终极教程_第1页
Linux Apache Web 服务器终极教程_第2页
Linux Apache Web 服务器终极教程_第3页
Linux Apache Web 服务器终极教程_第4页
Linux Apache Web 服务器终极教程_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、linux apache web 服务器终极教程apach系统介绍根据著名的www服务器调查公司所作的调查,世界上百分之五十以上的www服务器都在使用apache,是世界排名第一的web服务器。apache的诞生极富有戏剧性。当ncsa www服务器项目停顿后,那些使用ncsa www服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了apache group,后来这个团体在ncsa的基础上创建了apache。apache的主要特征是:. 可以运行上所有计算机平台;. 支持最新的http 1.1协议;. 简单而强有力的基于文件的配置

2、;. 支持通用网关接口cgi;. 支持虚拟主机;. 支持http认证;. 集成perl脚本编程语言;. 集成的代理服务器;. 具有可定制的服务器日志;. 支持服务器端包含命令(ssi). 支持安全socket层(ssl). 用户会话过程的跟踪能力;. 支持fastcgi;. 支持java servlets。安装apache下面我们就开始漫漫征服apache之旅,通过循序渐进的需求实例,一步步地学习使用apache,从入门到精通。系统需求运行apache不需要太多的计算资源。它在有6-10mb硬盘空间和8mb ram的linux系统上运行得很好。然而,只运行apache可能不是你想做的事情。更可

3、能的是,你想运行apache来提供www服务、启动cgi进程以及充分利用所有www能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动www服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。获取软件你可以在中获得apache的最新版。而几乎所有的linux发行版中均包含有apache软件包,你也可以直接使用它。需要注意的是,apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。安装软件你可以通过以下三种方法安

4、装apache服务器。1如果你安装的linux版本中带用apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,linux安装程序将自动完成apache的安装工作,并做好基本的配置。2使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。下载软件包apache_1.2.4.e.tar.gztar xvzf apache_1.2.4.e.tar.gz这就完成了安装工作,简单吧!如果你使用的是redhat linux的话,你也可以下载apache_1.2.4.rpm软件安装包,然后使用rpm -ivh apache_1.2.4.rpm命令安装。

5、3如果你想把apache服务器充分利用起来的话,就一定要自己编译apache定制其功能。下载包含apache源代码的软件包apache_1.2.4.tar.gz; 然后用tar命令将它解开; 将当前目录改变为apache源代码发行版的src目录; 将配置样本文件(configuration.tmpl)复制为configuration文件;编辑configuration文件中的配置选项:makefile配置选项:一些编译选项:. cc=一行指定用什么编译软件编译,一般为cc=gcc;. 如果需要将额外的标志(参数)指定给c编译软件,可以使用:extra_cflags=extra_lflags=.

6、 如果系统需要特殊的库和包含文件,可以在这里指定它们:extra_libs=extra_includes=. 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然后改成你所需要的值:#optim=-o2rule配置选项:用来决定需要什么功能,一般情况下无需改变。模块配置:模块是apache的组成部分,它为apache内核增加新功能。通过使用模块配置,可以自定义在apache服务器中需要什么功能,这个部分也是apache灵活性的表现。模块配置行如下所示:addmodule modules/standard/mod_env.o如果你需要apache服务器具备什么功能,就将那个模块用addmod

7、ule语句加到配置文件configuration中去。下表列出了apache的模块功能:模块名 功能 缺省mod_access 提供基于主机的访问控制命令 ymod_actions 能够运行基于mime类型的cgi脚本或http请求方法 ymod_alias 能执行url重定向服务 ymod_asis 使文档能在没有http头标的情况下被发送到客户端 ymod_auth 支持使用存储在文本文件中的用户名、口令实现认证 ymod_auth_dbm 支持使用dbm文件存储基本http认证 nmod_auth_mysql 支持使用mysql数据库实现基本http认证 nmod_auth_anon 允

8、许以匿名方式访问需要认证的区域 ymod_auth_external支持使用第三方认证 nmod_autoindex 当缺少索引文件时,自动生成动态目录列表 ymod_cern_meta 提供对元信息的支持 nmod_cgi 支持cgi ymod_dir 能够重定向任何对不包括尾部斜杠字符命令的请求 ymod_env 使你能够将环境变量传递给cgi或ssi脚本 nmod_expires 让你确定apache在服务器响应请求时如何处理expires ymod_headers 能够操作http应答头标 ymod_imap 提供图形映射支持 nmod_include 使支持ssi nmod_info

9、 对服务器配置提供了全面的描述 ymod_log_agent 允许在单独的日志文件中存储用户代理的信息 nmod_log_config 支持记录日志 ymod_log_referer 提供了将请求中的referer头标写入日志的功能 nmod_mime 用来向客户端提供有关文档的元信息 ymod_negotiation 提供了对内容协商的支持 ymod_setenvif 使你能够创建定制环境变量 ymod_speling 使你能够处理含有拼写错误或大小写错误的url请求 nmod_status 允许管理员通过web管理apache ymod_unique_id 为每个请求提供在非常特殊的条件下

10、保证是唯一的标识 n在src目录下执行:. /configure;编译apache:执行命令make;根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了。将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;将apache发行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件复制到/etc/httpd/conf目录下。到此为止,安装完成。一些说明在red hat linux 6.0中,apache将自己的所有配置文件和日志文件放在了/etc/httpd目录下,其中/etc/httpd/conf下为配置文件,/etc

11、/httpd/log下为日志文件。同时,它将建立/home/httpd目录,并在其下建立三个子目录:html/:在这个目录下存放html(主页)文件;cgi-bin/:在这个目录下可以存放一些cgi程序;icons/:在这个目录下是服务器自带的一些图标。配置apache基础篇,让www服务器跑起来apache服务器软件的配置文件主要有:access.conf:用于设置系统中的存取方式和环境;httpd.conf:用于设置服务器启动的基本环境;srm.conf:主要用于做文件资源上的设定;mime.type:记录apache服务器所能识别的mime格式。在具体讲解之前,我们必须告诉大家,apac

12、he已经在安装时就采用了一系列的缺省值,已经让www服务器跑起来了。你只需要将装上linux+apache的主机联入internet,然后将主页存放到/home/httpd目录下即可。下面介绍一些最主要的配置选项的含义,以便大家用最小的精力、最小的配置准备好服务器。httpd.conftpd.conf是主配置文件。它告诉服务器将如何运行。一、最重要的配置选项servertype standalone | inetd这个配置选项指定如何运行web服务器。apache可以使用两种方法来运行服务器:standalone(独立的)和inetd(由inetd运行的)。standalone参数表示web服

13、务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd参数表示web服务不是以一个单独的守候进程的形式支持。而是由inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的web服务请求的时候,再启动一个web服务进程为其服务。从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子www服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。在standalone模式下,不存在对

14、每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。standalone模式:此种模式下,www服务器侦听特定端口的连接请求。当客户机发出到特定端口地址的连接请求时,主服务器进程启动子www服务进程来服务该请求。另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:port number (缺省值为80)inetd模式inetd是侦听有小于1024的端口连接请求的internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到www服务器的连接请求时,inetd启动一个www服务器进程,由此进程服务此请求,完成服务后即退出。如

15、果选择通过inetd服务器来运行apache,需要编辑/etc/inetd.conf文件为apache添加一条新的记录:httpd stream tcp nowait httpd /etc/httpd/bin/httpd -f /etc/httpd/conf/httpd.conf修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行httpd 80/tcp httpd做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程id:ps auxw |grep inetd然后执行命令:kill -hup 在redhat linux中,默认

16、是采用inetd服务器来运行apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了。二、其它配置选项server admin命令,用来设置web管理员的e-mail地址。这个地址会出现在系统连接出错的时候,以便访问者能够将情况及时地告知web管理员。命令格式: server admin you e-mail address例:server admin adminerrorlog命令,用来指定错误记录文件名称和路径。命令格式: errorlog log filename例:errorlog /var/httpd/error.logtimeout命令,只要客户端超过这里

17、设定的秒数还没有完成一个请求的话,服务端将终止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。命令格式: timeout second例:timeout 120serverroot命令,它指定在何处保存服务器的配置、错误及日志文件。命令格式: serverroot fully qualified path name例:serverroot /etc/httpdservername命令,它配置服务器的internet主机名命令格式: servername host name例:servername srm.confsrm.conf是资源配置文件,用它来告诉服务器你

18、想在www站点上提供什么资源以及在哪里和如何提供们。documentroot命令,用来指定主文档的地址。命令格式: documentroot path例:documentroot /home/httpd/htmluserdir命令,用来指定个人主页的位置。如果你有一个用户test,那么它主目录是/home/test,当客户端输入http:/yourdomain/test,系统就会到对应的目录/home/test/userdir/中去寻找。其中userdir就是在userdir命令中设置的指定目录。命令格式: userdir path例: userdir public_htmldirectory

19、index命令,用来声明首页文件名称。一般地,我们使用index.html或index.htm作为首页的文件名。如果这样设置后,那么客户端发出web服务请求时,将首先调入的主页是在指定目录下文?quot;index.html或index.htm。命令格式: direcotryindex filename例:direcotryindex index.html index.htmscriptalias命令,为脚本程序目录起个别名,具体可见4.7小节。命令格式: scriptalias /alias/ fullly qualified path for script directory例: scri

20、ptalias /cgi-bin/ /home/httpd/cgi-binaccess.conf的配置access.conf文件用来设置www站点上诸如文件、目录和脚本项目的访问权限。该文件的第一段非注释部分如下:option indexes includes execcgi followsymlinkallowoverride noneorder allow , denyallow from all大家应该注意到,这一个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录/home/httpd/html而言的。1option命令有很多的参数,各个参数的意义如下所示:all 准许以下所

21、有功能(multiviews除外);multiviews 准许内容协商的multiviews;indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择;includesnoexec 准许ssi(server-side includes),但不可使用#exec和#include功能;includes 准许ssi;followsymlinks 准许符号链接到其他目录;execcgi 准许该目录下可以使用cgi。2而allowoverride命令则是用来决定是否准许在access.conf文件中设定的权限是否可以被在文件.htaccess中设定的权限覆盖。它有两个参数:all 准

22、许覆盖;none 不准许覆盖。3order命令:用来设定谁能从这个服务器取得控制。它也有两个参数:allow 可以取得控制;deny 禁止取得控制。现在我们一起来看看关于目录/home/httpd/html的设置的含义:它使得这个目录,如果不存在index.htm文件时,列出目录信息以供选择,准许ssi,允许执行cgi程序,开启了动态连接。它不允许再使用在文件.htaccess中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。该文件的第二段非注释部分如下:option execcgiallowoverride none这个表示目录/home/httpd/cgi的设置为,当前目录下可以执行

23、cgi程序。不允许再使用在文件.htaccess中设定来覆盖这里所设置的权限。需要说明的是,不同的linux系统中,可以在这个文件中看到的信息不完全相同,但是根据这里给出的信息,大家可以参照命令的解释自行理解文件中的设置,以及根据自己的需要进行相应的修改。4.4 使新的配置生效在上面,我们可能已经根据新的需求更改了相应的配置选项,如果我们要使得这个新的配置立即生效。我们就必须重新启动web服务进程。在linux中,我们可以十分方便地使用命令行来使得web服务进程重启。/etc/rc.d/init.d/httpd restart五、为用户开辟个人主页空间如果我们利用了linux系统架设了一台we

24、b服务器,我们不仅可以存放公司的主页,而且还可以为公司的每一个员工提供一块个人主页的空间。首先,为需要个人主页空间的员工在linux上开设一个帐号。这样,它就拥有了一个用户主目录/home/用户帐号名。addusr 用户帐号名passwd 用户帐号名在用户主目录下建立一个目录public_html,然后为其设置相应的权限。cd 用户帐号名mkdir public_htmlchmod 755 public_html确认在srm.conf文件中的userdir命令设置的是public_html目录。让员工将自己的个人主页上传到自己用户主目录下的public_html目录中。现在就可以使用用apac

25、he实现虚拟主机服务什么是虚拟主机服务所谓的虚拟主机服务就是指将一台机器虚拟成多台web服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供web服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的web服务,虽然所有的web服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得web服务一样。具体地说,就是,我们可以利用虚拟主机服务将两个不同公司与的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。 用apache设置虚拟主机服务通常可以采用两种

26、方案:基于ip地址的虚拟主机和基于名字的虚拟主机,下面我们分别介绍一下它们的实现方法。以便大家在具体的应用中能够选择最合适的实现方法。设置实现基于ip地址的虚拟主机服务实现前提这种方式需要在机器上设置ip别名,也就是在一台机器的网卡上绑定多个ip地址去为多个虚拟主机服务。而且要使用这项功能还要确定在你的linux内核中必须支持ip别名的设置,否则你还必须重新编译内核。下面举一个拥有两个虚拟主机的服务设置,以供参考。2配置步骤假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了web服务,现在将为新的一家公司提供虚拟主机服务。规划ip地址:为虚拟主机申请新的ip地址。(假设本机ip地址为2

27、0) 2) 让isp作好相应的域名解析工作。3) 为网卡设置ip别名:/sbin/ifconfig eth0:0 netmask 4) 重新设置/etc/httpd/conf/httpd.conf,在文件中加入:serveradmin webmasterdocumentroot /home/httpd/servername errorlog /var/log/httpd/5)建立相应的目录。mkdir /home/httpd/mkdir /var/log/httpd/6)将相应的主页内容存放在相应的目录中

28、即可。3不利因素这种虚拟主机的实现方法有一个严重的不足,那就是,每增加一个虚拟主机,就必须增加一个ip地址。而由于ip地址空间已经十分紧张,所以通常情况下是无法取得这么多的ip地址的。而且从某种意义上说,这也是一种ip地址浪费。设置实现基于名字的虚拟主机服务而基于名字的虚拟主机服务,是比较适合使用的一种方案。因为它不需要更多的ip地址,而且配置简单,无须什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机的实现方法。当然,这也就是指一些早期的客户端浏览器也许不支持这种虚拟主机的实现方法。正是以上原因,我们没有理由不使用基于名字的虚拟主机服务而使用基于ip地址的虚拟主机服务。配置基于名字的虚拟

29、主机服务需要修改配置文件?quot;/etc/httpd/conf/httpd.conf,在这个配置文件中增加以下内容。namevirtualhost serveradmin webmasterdocumentroot /home/httpd/servername errorlog /var/log/httpd/serveradmin webmasterdocumentroot /home/httpd/servername errorlog /var/log/httpd/也就是在基于ip地址的配置基础上增加一句:namevirtualhost 而已。

30、在本例中,为了体现只需要增加一次,所以特别地设置了两个虚拟主机服务。最后也是建立相应的目录,将主页内容放到相应的目录中去就可以了。配置cgi1. 什么是cgicgi是独立于语言的网关接口规范,它实际上可以用任何广泛流行的应用程序开发语言来实现,包括c、c+、perl、shell脚本甚至java。web服务器从客户端得到某个url,它告诉web服务器,必须运行一个cgi外部应用程序。那么web服务器启动这一应用程序,等待它完成并返回输出结果。最后,它将此应用程序的输出结果传输给另一端的web客户。2. 为cgi配置apache那么如何使apache能处理cgi请求呢?我们必须通过相应的配置过程告

31、知apache在哪里存储cgi程序,指明cgi程序的扩展等,以下我们逐一介绍一下设置的内容与步骤。创建存储cgi程序的目录创建集中的cgi程序目录只是建立cgi环境的开始。如果要考虑提高安全性的话,应将集中的cgi程序目录保存在documnetroot目录外,使得访问者不能直接访问cgi程序。 第一步:在documentroot目录外创建一个目录,然后将所有的cgi程序都集中存放在这个目录下。例如,你可创建一个/home/httpd/public/apps的目录作为cgi程序的大本营。第二步:为cgi程序目录创建别名,也就是编辑配置文件httpd.conf,加入:scriptalias /cg

32、i-bin/ /home/httpd/public/apps这样做后,当客户访问第三步:为cgi目录设置合适的权限,一般是只允许apache有读取和执行的权限但没有写的权限。允许用户访问cgi-bin我们已经在4.5小节中介绍了如何给用户开辟个人主页空间,但如果你的用户需要使他的主页更具有活力,往往会向你申请cgi-bin访问服务。下面我们就介绍一个apache服务器为用户提供的两种cgi-bin访问方法。1)使用directory或directorymatch容器当在配置文件srm.conf中用userdir命令被赋值为目录名称时,apache就把它作为用户www站点的顶层目录。例如:use

33、rdir public_html当apache接到如果要为每个用户添加cgi支持就在apache的配置文件access.conf中添加下列配置:options execcgiaddhandler cgi-script .cgi .pl注:将directorymatch换成directory亦可在这种方法中,apache服务器将使用scriptaliasmatch命令通过使用scriptaliasmatch命令,也可以为每个用户添加cgi支持。例如:scriptaliasmatch (a-z+)/cgi-bin/(.*) /home/$1/public_html/cgi-bin/$2这个命令将用

34、户名与$1相匹配,其中$1与(a-z+)相等。将/cgi-bin/后面的任何内容与$2相匹配,其中$2与(.*)相等。这个设置也就实现了将/home/user/public_html/cgi-bin/xxx.cgi那么大家想一想,如果你想将这个请求解释为:/home/httpd/public/apps/xxx.cgi该如何设置呢?对,应该是:scriptaliasmatch (a-z+)/cgi-bin/(.*) /home/httpd/public /apps/$23. apache为cgi提供的环境变量apache服务器提供了许多环境变量可以用于cgi程序的编写,了解它们也一定有助于写出充

35、分利用apache的cgi程序,所以在此也对此作一简单介绍。服务器变量服务器变量由apache设置用来通知cgi程序有关apache的情况。通过使用这些变量,cgi程序能确定有关服务器的不同信息:apache的版本,管理员的e-mail地址等。server_software这个变量是www服务器apache的版本号,它的值形如:apache/version,如apache/1.3;gateway_interface这个变量的值是当前cgi规范的版本号,其值形如:cgi/1.1;server_admin如果在httpd.conf文件中有设置站点管理员的e-mail地址的话,这个变量就会存放着这个

36、e-mail地址;document_root这个变量存放在是被访问的www站点的documentroot命令指定的值。客户请求变量apache提供的有关客户请求方的环境变量有许多,以下只是有选择性地介绍一些最常见的。server_name此变量可以告诉cgi程序它访问的是哪一个主机。这个值可以是ip地址也可以是完整的主机名;http_accept此变量被赋值为客户所能接受的mime类型的列表,如:http_accept=image/gif;http_accept_charset此变量被赋值为客户所能接受的字符集,如:http_accept_charaset=iso-8859-1.,*,utf-

37、8;http_accept_language此变量被赋值为客户所能接受的语言,如:http_accept_language=en;http_accept_agent这个变量指定发出请求的系统正在运行的浏览器类型和操作系统;http_port:服务端口;remote_host:客户端的ip地址或ip名称信息;remote_port:客户端的端口号;4. 一点提示若干年来,通过网关接口(cgi)已成为服务器端应用程序开发的事实标准。但随着时间的推移,发现在沉重的cgi负担下许多www服务器系统的表现不尽人意。这是因为cgi规范存在瓶颈问题:每当客户系统请求cgi应用程序时,www服务器就必须启动新

38、的cgi进程,直到完成任务后结束进程。这在负载不高时,会工作正常。但是,在高负载时,繁多的进程将成为性能的瓶颈问题。所以现在开始出现新的标准来弥补这一不足,其中fastcgi是很有前途的一种新的开放式标准。你可以在apache中通过添加mod_fastcgi.c模块来支持fastcgi。解读apache日志当你一步步地看到这里的时候,相信你的www站点已经建好,并且已经在internet上展现出来了。这时你可能就会关心谁造访过你的站点,或者想知道你的apache服务器现在的运行状态与性能如何。下面我们一起通过解读apache的日志来实现这个伟大的愿望。一、盯着apache服务器apache允许

39、通过www监视服务器的配置信息与运行状态。观看配置信息如果你的apache象缺省配置一样加入了mod_info模块的话,你就可以通过访问http:/localhost/server-info查看服务器信息。2.使用状态页如果你的apache象缺省配置一样加入了mod_status模块的话,你就可以通过访问http:/localhost/apache-status查看服务器的运行状态信息,其中包括: 服务器系统的当前时间; 服务器最近一次重启时间; 服务器启动后的运行时间; 到目前为止服务的访问总数; 到目前为止传输的字节总数; 服务请求的子进程数; 空闲子进程数; 每个进程状态、子进程服务的请

40、求数以及该子进程传输的字节总数; 每秒平均请求数、每秒传输的字节数、每次请求平均传输字节数; 目前每个子进程cpu占用及apache的总的cpu占用率; 当前主机及处理的请求。二、什么是日志文件日志文件是apache工作的记录,apache包括了mod_log_config模块,它用来记录日志。在缺省情况下,它用通用日志格式clf规范来写。clf日志文件内对每个请求均有一个单独行,形如:host ident anthuser date request status bytes其含义如下: host客户端主机的全称域名或ip地址; ident存放客户端报告的识别信息; authuser如果是基于

41、用户名认证的话,值为用户名; date请求的日期与时间; request客户端的请求行; status返回到客户端的三们数字的http状态码; bytes除去http头标外,返回给客户端的字节数。三、分析日志文件有了日志文件后,我们可以利用unix的一些工具和一此专门的日志分析工具对日志文件进行分析。实例一:列出访问过本网站的主机名或ip:对于这个需求,我们可以通过一个unix的一个脚本语句来完成:cat /var/log/httpd/access_log | awk print $1用上面的方法虽然可以得到访问过本网站的主机名或ip,但是由于有些是多次访问的,我们希望在上面得到的结果的基础上

42、做一些优化,使得列出的表中,每个主机只出现一次。我们可以使用:cat /var/log/httpd/access_log | awk print $1 | wc -l3.当然,我们可以根据需要选择第三方提供日志分析工具甚至自己开发一些日志分析工具来满足我们的需求。常见的第三方日志分析工具有:webtrends、wusage、wwwstat、http-analyze、pwebstats、webstat explorer、accesswatch。四、一些提示日志一方面是我们分析网站的第一手资料,一方面却是吞噬大量磁盘空间的罪魁祸首。所以别忘了定期转储或删除一些老的日志文件。apache与代理服务器

43、代理服务器是位于客户和客户要访问的服务器之间的系统。当客户机使用url请求访问远程资源时,代理服务器接受该请求并取得该资源以满足客户机的请求。在通常情况下,代理服务器是客户机的服务器,同时也是远程服务器的客户。代理服务器可以在自己的缓冲区中存储被请求的内容,当这些信息再次被请求的时候,代理服务器就无需再从远程服务器上取了,这样代理服务器就减轻了网络的瓶颈问题。apache可以配置成为代理服务器。一、前向代理服务器和逆向代理服务器1前向代理服务器前向代理服务器通常位于用户主机和要访问的远程网络之间。它从远程服务器取得所要求的资源,然后返回给用户,同时存在磁盘上,以供下次使用。在这种情况下,客户端

44、的主机知道它们正在使用代理服务器,因为每个主机都必须配置为使用代理服务器。例如,必须告诉www浏览器使用代理服务器,它才能使用代理服务器。所有的远程请求都通过代理服务器传输。这类代理服务器也称为缓冲代理服务器。逆向服务器也可以缓冲数据,但它的作用愉好与前向服务器相反。2逆向代理服务器逆向代理服务器位于互联网资源前面,逆向服务器从原始服务器找到被请求的资源,并反它返回给用户主机。与前向代理服务器不同的是,逆向代理服务器的用户并不知道它们连接的是代理服务器而不是资源服务器本身。其结构如下图所示:二、配置代理服务器为了允许apache作为代理服务器,需要将proxyrequests设为on,然后根据

45、你希望代理服务器做什么而增加什么附加配置。无论你希望做什么,你所选的代理配置都应该放入一个特殊?lt;directory容器中。实例一:将私有ip网连到互联网假设私有网上只有一台计算机被分配了互联网上合法的ip地址,这台计算机运行apache代理服务器,proxyrequest设置为on,并且不需要附加其他配置,所有请求均可由这台代理服务器代理服务。实例二:让apache允当远程www站点的缓冲第一步:将proxyrequest设置为on第二步:创建配置如下:cacheroot /www/cachecachesize 1024cachemaxexpire 24这里的意思是设置cache目录为/

46、www/cache;大小为1024kb,即1mb;缓冲中的内容在24小时后失效。实例三:建立镜像站点(其实这也就是所谓的逆向代理服务器)第一步:将proxyrequest设置为on第二步:创建配置如下:proxypass / /cacheroot /www/cachecachedefaultexpire 2410.3 一些提示代理服务器,我们将会在后面的章节中详细介绍,这里只是针对apache的功能介绍的。用apache作代理服务器的性能并不高,效果并不好。不建议使用。安裝 apache+php+mysql+imap+gd+ldap+opens注意事项:1.如果妳是用 redhat based

47、 的 linux 的话,请执行 ntsysv 将 httpd 和 mysql 不要执行2.将 download 的档案放到相同的目录,再用 tar zxvf xxxxxxxx.tar.gz 来解压缩,请依照要安装的软件进入适当的目录。3.可以到 http:/linuxnews.idv.tw/download/ 来下载所需的程序。mysql:-./configure -prefix=/usr/local/mysql -with-charset=big5makemake installcd scripts./mysql_install_dbcd /usr/local/mysql/share/mys

48、ql/chmod 611 mysql.server./mysql.server start#编辑 /etc/rc.d/rc.local 加入底下这行以便开机时自动执行 mysql/usr/local/mysql/share/mysql/mysql.server startimap:-make slxcp ipopd/ipop*.* /usr/sbincp imapd/imapd /usr/sbincp c-client/c-client.a /usr/local/lib#请确定你有 /usr/local/include 这个目录cp c-client/rfc822.h /usr/local/includecp c-client/mail.h /usr/local/includecp c-client/linkage.h /usr/local/includegd:-makemake installldap:-./confi

温馨提示

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

评论

0/150

提交评论