Linux下Apache配置文件案例讲解
Apache 目录学习
etc/htttd/conf/httpd.conf
(Apache 的主配文件)
httpd.conf是Apache的主配文件 ,整个Apache也不过就是这个配置文件,里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为主。只要找到这个文件名就知道如何设置了。后面会详细解释Apache主配文件的每一行配置
etc/httpd/conf.d/*.conf
(include 文件)
如果你不想要修改原始配置文件httpd.conf的话,那么可以将你自己的额外参数文件独立出来,注意以.conf结尾放在/etc/http/conf.d/目录下。重Apache的时候,这个配置文件就会被读入主配文件之中了。他的好处就是当你在进行系统升级的时候,几乎不需要改动原本的配置文件,只要将你自己的额外参数文件复制到正确的地点即可, 维护起来非常方便。
/usr/lib64/httpd/ modules/
/etc/httpd/modules/
Apache支持很多的外挂模块,例如PHP以及SSL都是Apache外挂的一种。所有你想要使用的模块文件默认是放置在这个目录当中的。
/var/www/html/
( (网站根目录)
这个目录就是Apache默认的存放首页的目家(人是index.html )
var/www/error/
当因为服务器设置错误,或是浏览器要求的数据错误时,在浏览器上出现的错误信息就以这个目录的默认信息为主
/var/www/icons/
这个目录提供Apache默认始予的一些小图示,可以随意使用。
/var/www/cgi-bin/
默认给一些可执行的CGI (网页程序)程序放置的目录。
- /
var/log/httpd/
默认的Apache日志文件都放在这里,对于流量比较大的网站来说,这个目录要格外注意,这里的数据文件可能会非常大。
/usr/ sbin/apachectl
这个就是Apache的主要执行文件,这个执行文件其实就是一个Shell Script而已,他可以主动地侦测系统上面的一些设置值,好让你启动Apache时更简单一些。
/usr/sbin/httpd
这个是主要的Apache二进制执行文件。
/usr/bin/htpasswd
( (Apache 密码保护)
在当你想要登入某些网页时你需要输入帐号与密码,那Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令来实现的。
Apache 主配文件httpd.conf
ServerTokens OS
#这个项目仅仅是在告知客户端我们服务器的版本和操作系统而已,不需要改动他,如果不在乎你的系统信息被远程用户查询到,则可以将这个项目注释掉(不建议)
ServerRoot “/etc/httpd”
#服务器设置的最顶层目录,有点类似于Chroot那种感觉,包括logs,modules等的数据都应该要放置在此目录下面(如果这些配置没有声明成绝对路径的话)
PidFile run/httpd.pid
#放置PID的文件,可方便apache软件的管理。只有相对路径考虑ServerRoot设置值,所以文件/etc/httpd/run/httpd.pid
Timeout 60
#不论接收或发送,当持续连接等待超过60秒则该次连接就中断。一般来说,此数值在300秒左右即可,不需要修改这个原始值
KeepAlive Off
#这里最好把默认值"Off" 修改为"On",这里表示是否允许持续性的连接,也就是一个TCP连接可以具有多个文件资料传送的要求。举例来说,如果你的网页内含有很多图片文件,那么这一次连接就会将所有的数据传送完而不必每一个图片都需要进行一次TCP连接。
MaxkeepAliveReguests 100
#可以将默认的100改成500或更高,与上一个设置的值KeepAlive有关,当KeepAlive的值设置为On的时候,这个数值可以决定该次连接能够传输的最大传输数量。为了提高效率则可以改大一点。0代表不限制
KeepAliveTimeout 65
#在KeepAlive设置为"On"的情况下,该次连接在最后次传输后等待延迟的秒数,当超过该秒数的时候该连接中断。保持默认值15即可,如果设置的值太高(等待时间较长),在较忙碌的系统上面将会有较多的Apache程序占用资源,可能有效率方面的问题。
<lfModule prefork.c>
StartServers 8 #启动 Apache的时候,唤醒几个PID来处理服务的。
#Apache使用了进程预派生的技术来处理请求,大大提高了响应速度
MinSpareSevers 5 #最小预备使用的PID数量
MaxSpareServers 20 #最大预备使用的PID数量
ServerLimit 4096 #服务器的限制
MaxClients 4096 #最多可以有多少个客户端同时连接到Apache
最大的同时连接数量,也就是process不会超过这一数值。这个MaxClients设置值可以控制同时连上www服务器的总连接要求数量。也可以将其看作是最高实时在线人数。不过要注意的是:这个值并非越大越好,因为他会消耗物理内存(与process有关) ,所以如果你设置太高导致超出物理内存能够容许的范围,那么效率就会大大降低(因为会跑SWAP ) ,此外,MaxClients也在Apache编译的时候就指定最大值了,所以你也无法超出系统最大值,除非你重新编译
Apache
MaxRequestsPerChild 4000
每个程序能够提供的最大传输次数要求。举例来说,如果有个用户连上服务器之后,要求数百个网,当他的要求数量超过这个值的时候则该程序会被丢弃。另外切换一个新程序。这个设置可以有效地管理每个process在系统上存活的时间。
根据观察所得,新程序的效果较好。
</IfModule>
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
上面的prefork和worker其实就是两个与服务需连接资源有关的设置项目默认的项目配置对于一般中小型网站来说已经很够用了,不过如果网站的流量比较大,也可以修订一下里面的数值。这两个模块都是用在提供用户连接资源,设置的数值越大代表系统会启动越多的程序来提供Apache的服务,反映速度就比较快
Apache 工作模型选择
#Redhat和CentOS将这两个模块分别放到了不同的执行文件中,分别是
/usr/sbin/httpd 使用prefork模块
/usr/sbin/httpd.worker 使用worker模块
/etc/sysconfig/httpd这个文件决定了Apache使用哪一个模块,可以通过。
修改这个文件来切换不同的工作模式。
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so