一、使用rpm -ql httpd可以查看rpm包安装的httpd文件及其路径
1、配置文件:
/etc/httpd/conf/httpd.conf #主配置文件
/etc/httpd/conf.d/welcome.conf #无首页所指定的链接文件
2、服务脚本:
/etc/rc.d/init.d/httpd #服务起停脚本
/etc/sysconfig/httpd #脚本配置文件
3、模块目录:
/usr/lib64/httpd/modules:存放了各种以.so结尾的httpd所需的模块
/etc/httpd/modules:链接文件,链接到上面的模块目录
4、主程序:httpd支持三种MPM(多路处理模块),也就是并发响应模式,同时且只能有一个MPM工作
/usr/sbin/httpd:基于prefork,内核会为每一个用户请求分配一个进程,性能较低,但是最稳定可靠,依赖于prefork.c模块
/usr/sbin/httpd.worker:基于worker,内核为每个用户请求分配一个线程,多个线程由一个进程管理,减轻了多个进程间切换所消耗的cpu时间,依赖于worker.c模块
/usr/sbin/httpd.event:httpd2.4以上支持,低于2.4版本的只为实验状态,基于event,支持一个线程响应多个用户的请求,依赖于event.c模块
5、日志文件目录:
/var/log/httpd/access_log:访问日志
/var/log/httpd/error_log:错误日志
6、站点文档根目录:
/var/www/html/:默认
二、httpd配置文件说明
httpd.conf配置文件由3部分组成,分别为全局环境配置、主服务配置以及虚拟主机配置,其中主服务配置与虚拟主机不能同时使用
1、全局环境配置项
Timeout:接送和发送资源超时时间
KeepAlive:是否开启保持会话连接功能,开启后可避免同一用户请求资源时重复进行TCP三次握手四次断开
MaxkeepAliveRequests:同一用户端保持会话最多允许请求的资源链接次数,超过次数会断开重新连接
KeepAliveTimeout:保持会话连接后允许的最大超时时间,此时间未有资源请求会断开保持的会话
基于prefork的用户会话处理方式:
StartServers:默认开启等待用户连接的进程数
MinSpareServers:最少等待用户连接的空闲进程数
MaxSpareServers:最多等待用户连接的空闲进程,超过则杀死多余空闲进程
ServerLimit:限制最大用户请求会话连接数
MaxClients:最大响应用户会话的进程数,一般与ServerLimit相等
MaxRequestsPerChild:一个进程生存期间能够处理的会话数,超过则关闭此进程
基于worker.c的用户会话处理方式:
StarServers:默认开启的等待用户连接的进程数
MaxClients:能够同时处理的用户请求会话连接
MinSpareThreads:最小空闲线程数
MaxSpareThreads:最大空闲线程数
ThreadsPerChild:每个进程下的线程数
MaxRequestsPerChild:每个进程生存期间能够处理的最大会话数,0为不限制
监听端口,默认为监听服务器所有网卡的80端口
Listen IP:PORT的方式可以指定监听固定IP及端口
Listen可重复指定多次
DSO机制装载的模块
格式为:LoadModule 模块名 模块路径
httpd -D DUMP_MODULES命令可查看装载的模块
指定运行httpd的用户和组,默认为apache用户和apache组
为安全起见,请尽量避免使用系统用户与root用户
2、主服务配置段
指定服务器主机名,如果没有指定httpd会尝试用主机名解析IP,如解析不到会用主机名代替
指定网站根目录,默认为/var/www/html
站点路径访问控制:
Directory:基于本地文件系统路径做访问控制
Location:基于URL访问路径做访问控制
Options:可以在选项后加“-”关闭此功能
Indexes:当访问的路径下无默认的主页面,将所有资源以列表的形式呈现给用户,非常危险
FollowSymLinks:支持符号链接访问资源
AllowOverride:支持在每个页面目录下创建.htaccess用户实现对此目录中资源访问时的控制功能
Order,Deny,Allow:基于IP做访问控制
DirectoryIndex:定义默认的主页,优先级由左到右
ErrorLog:错误日志文件路径
LogLevel:错误日志记录级别,高于此级别的报警才会记录日志
LogFormat:访问日志的记录格式
CustomLog:访问日志路径及所用格式名
%h: 客户端地址
%l: 远程登录名,通常为-
%u: 认证时输入用户名,没有认证时为-
%t: 服务器收到 用户请求时的时间
%r:请求报名的起始行
%>s: 响应状态码
%b: 响应报文的长度,单位是字节
%{HEADER_NAME}i: 记录指定首部对应的值
Alias:路径别名,实现URL路径的映射,从而访问的资源不再依赖于站点根目录
ScriptAlias:CGI脚本路径别名
AddDefaultCharset:默认字符集
对网站基于用户认证做访问控制:
AllowOverride:
AuthConfig启用认证
AuthType:认证类型
Basic:基本认证,明文传输,常用
digest:摘要认证,密文传输,某些浏览器不支持
AuthName:认证显示信息
AuthBasicProvider:基本认证模式,默认为file格式
AuthUserFile:认证文件路径
Require:允许访问的认证用户
valid-user:允许.htpasswd文件中所有用户访问
user USERNAME:允许.htpasswd中的某用户访问