当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Apache 的 httpd.conf 中文详解

    栏目:Linux/apache问题 时间:2018-09-30 13:39

    Apache 的 httpd.conf 中文详解,需要的朋友可以参考下。 ServerRoot “/usr/local“
    ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下。
    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一个文件来保存所有的设置选项。
    PidFile /var/run/httpd.pid
    PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。
    Timeout 300
    Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。
    KeepAlive On
    在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。
    MaxKeepAliveRequests 100
    MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。
    KeepAliveTimeout 15
    KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。
    ThreadsPerChild 50
    设置服务器使用进程的数目。
    # 这是以服务器的响应速度为准的, 数目太大则会变慢
    MaxRequestsPerChild 30
    使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。
    但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的htt pd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。缺省的设置值为30,这个值对于具备高稳定性特点的FreeBSD系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。
    为了安全,设置为零
    #Listen 3000
    #Listen 12.34.56.78:80
    #BindAddress *
    Listen参数可以指定服务器除了监视标准的80端口之外,还监视其他端口的HTTP请求。由于FreeBSD系统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP请求。如果没有配置这一项,则服务器会回应对所有IP的请求。