zoukankan      html  css  js  c++  java
  • apache配置说明

    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类型。

    bash-2.02$ ls -l /usr/local/apache/conf

    total 100

    -rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf

    -rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default

    -rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf

    -rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default

    -rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic

    -rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default

    -rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types

    -rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf

    -rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default

      事实上当前版本的Apache将原来httpd.conf、srm.conf与access.conf中的所有配置参数均放在了一个配置文件httpd.conf
    中,只是为了与以前的版本兼容的原因(使用这三个设置文件的方式来源于NCSA-httpd),才使用三个配置文件。而提供的
    access.conf和srm.conf文件中没有具体的设置。

      由于在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调整这个文件中的设置。以下使用缺省提供的
    httpd.conf为例,解释Apache服务器的各个设置选项。然而不必因为它提供设置的参数太多而烦恼,基本上这些参数都很明确,也
    可以不加改动运行Apache服务器。但如果需要调整Apache服务器的性能,以及增加对某种特性的支持,就需要了解这些设置参数的
    含义。

      关于Apache服务器的性能,在Internet上存在很大的争议,基本上使用Apache的使用者几乎都不怀疑它的优秀性能,Apache
    也支撑了很多著名的高负载的网站,但是在商业机构的评测中,Apache往往得分不高。很多人指出,在这些评测中,商业Web服务器
    及其操作系统往往由其专业公司的工程师进行过性能调整,而Free 的操作系统和Web服务器往往就使用其缺省配置或仅仅作很小的
    更改。需要指出的是,除了操作系统的性能调整之外,Apache 服务器本身的缺省配置绝不是最优化和最高效的,而是要适应几乎所
    有种类操作系统、所有种类硬件下的设置,多平台的软件不可能为特定平台和特定硬件提供最优化的缺省配置。因此要使用Apache
    的时候,性能调整是必不可少的。

      在商业评测中忽略了的另一个事实是,评测时往往对不同种类的功能进行比较,例如使用Apache的标准CGI 的性能与ISAPI,
    NSAPI等服务器端API比较,事实上Apache服务器与此可以比较的功能为modperl ,FastCGI,与ASP类似的功能为PHP等等,只不过
    由于Apache的开放模式,这些功能是由独立的开发组,作为独立的模块来实现的。但是在评测中,测试人员没有加入相应的模块评
    测其性能。

    HTTP守护进程的运行参数

    httpd.conf中首先定义了一些httpd守护进程运行时需要的参数,来决定其运行方式和运行环境。

    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/run/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 一个文件来保
    存所有的设置选项。

      Timeout 300

      Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。

      KeepAlive On

      在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这
    样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。

      MaxKeepAliveRequests 100

      MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输
    请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。

      KeepAliveTimeout 15

      KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序
    的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/BoyeeStudio/p/3010842.html
Copyright © 2011-2022 走看看