Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17611
  • 博文数量: 9
  • 博客积分: 435
  • 博客等级: 下士
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-16 08:23
文章分类
文章存档

2011年(2)

2008年(7)

我的朋友
最近访客

分类:

2011-06-28 10:28:35

Apache服务器的配置和优化
时间:2008-04-16 12:46来源:互联网
Apache服务器的配置和优化 Apache服务器的配置文档位于/usr/local/apache/conf/目录下,传统上使用三个配置文档httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。 httpd.conf提供了最基本的服务器配置,是对守护程式httpd如何运行的技术描述;srm.conf是
  
Apache服务器的配置和优化


Apache服务器的配置文档位于/usr/local/apache/conf/目录下,传统上使用三个配置文档httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。 httpd.conf提供了最基本的服务器配置,是对守护程式httpd如何运行的技术描述;srm.conf是服务器的资源映射文档,告诉服务器各种文档的MIME类型,连同如何支持这些文档;access.conf用于配置服务器的访问权限,控制不同用户和电脑的访问限制;这三个配置文档控制着服务器的各个方面的特性,因此为了正常运行服务器便需要配置好这三个文档。
  除了这三个配置文档之外,Apache还使用mime.types文档用于标识不同文档对应的MIME类型, magic文档配置不同MIME类型文档的一些特别标识,使得Apache 服务器从文档后缀不能判断出文档的MIME 类型时,能通过文档内容中的这些特别标记来判断文档的MIME类型。

[iaspec@www conf]$ pwd
/usr/local/apache/conf
[iaspec@www conf]$ ls
access.conf httpd.conf.OLD magic.default srm.conf
access.conf.default httpd.conf.SAVE mime.types srm.conf.default
httpd.conf magic mime.types.default

  新版本的Apache将原来httpd.conf、srm.conf和access.conf中的任何配置参数均放在了一个配置文档httpd.conf中,只是为了和以前的版本兼容的原因(使用这三个配置文档的方式来源于NCSA-httpd),才使用三个配置文档。而提供的access.conf和srm.conf文档中没有具体的配置。
由于在新版本的Apache中,任何的配置都被放在了httpd.conf中,因此只需要调整这个文档中的配置。本文基于redhat 7.2 下的httpd.conf为例,解释Apache服务器的各个配置选项,当然,其配置方法可扩展到几乎任何unix系统。

虽然Apache提供配置的参数很多,基本上这些 参数都很明确,也能够不加改变运行Apache服务器。但假如需要调整Apache服务器的性能,连同增加对某种特性的支持,就需要了解这些配置参数的含义。

需要指出的是,除了操作系统的性能调整之外,Apache 服务器本身的缺省配置绝不是最优化和最高效的,而是要适应几乎任何种类操作系统、任何种类硬件下的配置,多平台的软件不可能为特定平台和特定硬件提供最优化的缺省配置。因此要使用Apache的时候,性能调整是必不可少的。
本文目录快速访问:
httpd.conf基本配置和性能优化的关系
另外一些加速方法
附录一、采用 mod_gzip 加速Apache

httpd.conf基本配置和性能优化的关系

httpd.conf中首先定义了一些httpd守护进程运行时需要的参数,来决定其运行方式和运行环境。 下面就httpd.conf中的配置参数的定义及其各种配置、优化方法进行逐项说明:
(优化没有捷径,必须首先清楚各配置的含义)

  ServerType standalone
  ServerType定义服务器的启动方式,缺省值为单独方式standalone,httpd 服务器将由其本身启动,并驻留在主机中监控连接请求。在Linux下将在启动文档 /etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,这种方式是推荐配置。
  启动Apache服务器的另一种方式是inet方式,使用终极服务器inetd监控连接请求并启动服务器。当需要使用inetd启动方式时,便需要更改为这个配置,并屏蔽/etc/rc.d/rc.local/init.d/apache文档,连同更改/etc/inetd.conf并重起inetd,那么Apache就能从inetd中启动了。

  两种方式的区别是单独方式是由服务器自身管理自己的启动进程,这样在启动时能立即启动服务器的多个副本,每个副本都驻留在内存中,一有连接请求无需生成子进程就能够立即进行处理,对于客户浏览器的请求反应更快,性能较高。而 inetd方式要由inetd发现有连接请求后才去启动http服务器,由于inetd 要监听太多的端口,因此反应较慢、效率较低,但节约了没有连接请求时Web服务器占用的资源。因此inetd方式只用于偶尔被访问并且不需要访问速度的服务器上。事实上inetd方式不适合http的突发和多连接的特性,因为一个页面可能包含多个图象,而每个图象都会引起一个连接请求,即使虽然访问人数造成教少,但瞬间的连接请求并不少,这就受到inetd性能的限制,甚至会影响由inetd启动的其他服务器程式。


  ServerRoot "/usr/local"

  ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此假如配置文档中指定的文档或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。
  由于httpd会经常进行并发的文档操作,就需要使用加锁的方式来确保文档操作不冲突,由于NFS文档系统在文档加锁方面能力有限,因此这个目录应该是本地磁盘文档系统,而不应该使用NFS文档系统。


  # LockFile /var/lock/httpd.lock

  LockFile参数指定了httpd守护进程的加锁文档,一般无需配置这个参数, Apache服务器将自动在ServerRoot下面的路径中进行操作。但假如ServerRoot为NFS文档系统,便需要使用这个参数指定本地文档系统中的路径,以提高读写速度。


  PidFile /var/run/httpd.pid

  PidFile指定的文档将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,他为其他进程的父进程,对这个进程发送信号将影响任何的httpd进程。PidFILE定义的文档中就记录httpd父进程的进程号。


  ScoreBoardFile /var/run/httpd.scoreboard

  httpd使用ScoreBoardFile来维护进程的内部数据,因此通常无需改变这个参数,除非管理员想在一台电脑上运行几个Apache服务器,这时每个Apache服务器都需要单独的配置文档htt pd.conf,并使用不同的ScoreBoardFile。


  #ResourceConfig conf/srm.conf
  #AccessConfig conf/access.conf

  这两个参数ResourceConfig和AccessConfig,就用于和使用 srm.conf 和 access.conf 配置文档的老版本Apache兼容。假如没有兼容的需要,能够将对应的配置文档指定为/dev/null,这将表示不存在其他配置文档,而仅使用httpd.conf 一个文档来保存任何的配置选项。
 
阅读(276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~