/ 中存储网

Apache服务器配置文件详解

2014-04-10 09:16:02 来源:ITJS.CN
apche配置参数比较多,我只写点我平时用到的几个:

黑色文字是网上找的资料,蓝色是配置参数,红色是我自己的看法,仅供参考。

Worker 由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients 设置了同时连入的clients最大总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。MinSpareThreads和 MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。 ThreadsPerChild是worker MPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用 ThreadLimit指令,它的最大缺省值是20000。Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值。

<IfModule worker.c>

ServerLimit 25

ThreadLimit 200

StartServers 3

MaxClients 2000

MinSpareThreads 50

MaxSpareThreads 200

ThreadsPerChild 100

MaxRequestsPerChild 0

</IfModule> -----

#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录

ServerRoot "/usr/loacl/apache2"

如虚机a站点配置的日志在 logs/test.log,那完整路径就是/usr/loacl/apache2/logs/test.log

-----

#Timeout:接收和发送前超时秒数

Timeout 150

#KeepAlive:是否允许稳固的连接(每个连接有多个请求),

#设为"Off"则停用。

KeepAlive On

#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数

KeepAliveTimeout 5

这3个值我一般都配合使用,如果网站的访问量很高,php占用的系统资源较高,就把KeepAliveTimeout往小调,或者直接把KeepAlive设置成Off试试。

------

#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,

#设为0表示无限制接入。

MaxKeepAliveRequests 1000

推荐将其设为一个较大的值,以提高性能

--------

# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。

DocumentRoot "/home/redhat/public_html"

DocumentRoot配置在全局参数里面,如果直接用IP来访问服务器,默认的就去读取这里面的文件。一般我把这里配置到一个错误页面,不允许IP来直接访问,正式的站点都通过虚拟主机模块来配置。

------

# DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名

DirectoryIndex index.php index.html index.htm

定于默认首页的访问顺序,越前优先级越高,这个参数一般放在虚机主机模块里面定义,毕竟每个网站的默认首页文件可能不一样。

-------

# Typeconfig:定义在哪里查询mime.types文件。

TypeConfig conf/mime.types

# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。

DefaultType text/plain

这个参数我的理解就是配置站点要识别哪些后缀名文件的配置参数,如果不认识,直接用text本文模式来显示。

-------

# LogLevel:控制记录在错误日志文件中的日志信息数量。

# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。

LogLevel error

日志文件的记录等级,这个根据站点情况来定,线上站点,一般配置成error来减少对磁盘的写操作。

-----

# 下面的指令为CustomLog指令定义格式别名。

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

LogFormat "%h %l %u %t "%r" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

这个是定于记录日志的格式,具体每个参数的作用可以自己google下。

-------------

指定接入日志文件的定位和格式(一般日志格式)。

CustomLog logs/access_log common

全局参数,默认的正确日志记录文件和格式。一般一个服务器上都有多个站点,建议在虚拟主机模块里为每个站点定义一个日志文件。

-----------

# 这里是添加php 4支持的指令

AddType application/x-httpd-php .php

LoadModule php5_module modules/libphp5.so

配置apache支持php模块。

--------

下面是公司的一个虚拟主机配置,要增加一个主机,只要复制一份修改下站点名字,文件路径,日志名称即可。//后为注释

<VirtualHost *>

ServerAdmin [email protected]  

DocumentRoot /www/www.server110.com    //配置网站文件位置

ServerName www.server110.com //站点域名

    ServerAlias server110.com  //站点别名

    ErrorLog  /dev/null  //错误日志记录位置

CustomLog /dev/null common  //正常日志记录位置

DirectoryIndex index.html index.php index.htm   //默认首页文件

</VirtualHost>