第八章 Apache监控与调优
Apache是世界上使用最多的Web服务器软件之一,它几乎可以运行在所有广泛使用的计算机平台上,并且可以快速、可靠地通过API进行扩充。Apache全称为Apache HTTP Server,是由Apache软件基金会开发的一款开源的网页服务器。如果工作中我们的项目使用的是Apache的Web服务器,那么就必须对其连接池和MPM等进行监控与调优。
8.1Apache目录结构
bin目录。主要是存放一些命令文件,最常用的是Apache启动、关闭和重启的命令文件apachectl。
build目录。主要是存放apache编译与构建时的相关文件。
cgi-bin目录。公共网管接口方式存放的目录。
conf目录。相关配置文件所在目录,最常用的配置文件为httpd.conf。
error目录。存放一些错误信息,这些错误信息室当请求发生错误时返回给客户端的。
htdocs目录。发布网站所在的工作目录。
icons目录。icons目录用于存放相关的图标文件。
include目录。include目录主要存放一些封装好的头文件。
lib目录。主要存放一些编译好的动态链接库的文件。
logs目录。主要存放日志文件,包括一些常见的日志文件和一些错误的日志文件。
man目录。表示Apache的帮助手册。
manual目录。主要存放帮助手册相关文件。
modules目录。主要存放Apache调用模块的源文件。
8.2 Apache配置文件
Apache配置文件为httpd.conf,所在位置为conf目录下。
可以使用apachectl configtest 或-t命令行选项在不启动服务器的情况下检查配置文件中的语法错误。
配置文件中常见配置项说明:
ServerRoot:http-www的Home目录,用来存放配置文件、错误文件、记录文件。
Listen:用于设置服务器IP地址和端口号,Apache默认端口号是80.
User:启动Apache的相关用户。
Group:启动Apache相关组。
PidFile:表示启动程序进程所在的位置。
Timeout:表示连接超时,如果客户端与服务器已连接上,在超时范围内还未发送请求给服务器,那么服务器会自动与客户端断开连接。
KeepAlive:表示是否保持长连接,即在一个TCP连接下可以发送多个HTTP请求。
语法:
KeepAlive On|Off
默认值:
KeepAlive On
HTTP1.0的Keep Alive扩展功能和HTTP1.1的持久连接功能提供了长期存在的HTTP会话,该会话允许通过一个TCP连接发送多个请求。
KeepAliveTimeout:表示当开启长连接时,请求与请求之间的时间间隔。
KeepAliveTimeout seconds
KeepAliveTimeout 5
设置KeepAliveTimeout为较高的值,可能会导致服务器负载过重的性能问题。超时时间越长,等待与空闲客户端进行连接的服务器进程将被占用的时间越长。
MPM相关参数:MPM是多通路处理模块。
ServerName:表示服务器的主机名。
DocumentRoot:表示发布的应用程序所在的位置。
语法:
DocumentRoot directory-path
默认值:
DocumentRoot /usr/local/apache/htdocs
该指令设置httpd将从该路径下获取。例:
DocumentRoot /usr/web
如果访问http://www.my.host.com/index.html 将指向 /usr/web/index.html。如果目录路径不是绝对路径,则假定它是相对于ServerRoot的相对路径。