/etc/httpd/conf/httpd.conf文件中默认配置
1、ServerRoot “/etc/httpd”设置服务器所在的目录,一般来说会包含conf/和logs/子目录。其他的配置文件的相对路径都是基于此目录
2、PidFile “/run/httpd.pid”设置服务器用于记录父进程(监控进程)PID的文件,在httpd服务启动之后会在/etc/httpd/run文件夹中生成一个“httpd.pid”的文件
3、Timeout 60 设置了Apache等待以下三种时间的时间长度:
(1)接受一个GET请求耗费的总时间
(2)POST或者PUT请求时,接受两个TCP包之间间隔的时间
(3)应答时TCP包传输两个ACK包之间的时间
意思大概是只要服务器在不超过60秒的时间内和客户端进行通信,连接就不会断开,这个时间应该是传输数据的间隔时间。
4、keepalive off 是否启用HTTP的持久连接
5、MaxKeepAliveRequests 100 一个持久连接红允许的最大请求数量,前提是要先启用持久连接,并且当这个值设为0时,表示不限制请求的数目。
6、KeepAliveTimeout 15 持久连接中服务器在两次请求之间等待的秒数。Apache在关闭持久连接前等待下一个请求的秒数。一旦收到一个请求,超时值将会被设置为Timeout
指令指定的秒数。在服务器并发访问较多的时候应该将这个值设置的小一些,因为时间越长与空闲客户端连接的进程也会越多。
7、prefork工作模式---->由一个父进程创建多个子进程,父进程负责管理子进程和创建套接字等,子进程负责响应和处理请求。
<IfModule prefork.c>
StartServers 8---------->设置服务器启动时建立的子进程数量,一般不进行调整
MinSpareServers 5--------->设置空闲子进程的最小数量
MaxSpareServers 20------->设置空闲子进程的最大数量,如果当前空闲子进程超出,父进程会杀死 多余空闲子进程
ServerLimit 256---------->设置MaxClients最大允许配置的数值,服务器允许配置的进程上限。
MaxClients 256-------->设置了允许同时处理的最大接入请求数量
MaxRequestsPerChild 4000----->设置每个子进程在其生存期内允许处理的最大请求数,当子进程处理的请求多于4000时,子进程会结束,如果设置为0则子进程永远不会结束
</IfModule>
8、worker工作模式---->多进程多线程模型:一个线程响应一个请求,主进程:管理子进程;创建套接字;接收用户请求,并派发给某子进程处理,子进程:负责管理线程,线程:处理并响应请求.
<IfModule worker.c>
StartServers 4--------------->设置服务器启动时建立的子进程数量
MaxClients 300
MinSpareThreads 25---------->最小空闲线程
MaxSpareThreads 75---------->最大空闲线程
ThreadsPerChild 25----------->设置每个子进程建立的线程数
MaxRequestsPerChild 0
</IfModule>
9、Listen 80 ---->服务器监听的ip地址和端口,可以有多个监听的ip地址和端口
可以加上IP:如Listen 190.168.1.1:80 Listen 192.168.1.125:8000
10、ServerAdmin --------->管理员邮箱
11、UseCanonicalName Off------>功能关闭,服务器利用客户端请求中的ServerName和端口构建URL(不知道是不是这个意思)
12、DocumentRoot “/var/www/html”-------->资源根目录
13、<Directory "dirPath"></Direcyory> 用于封装一组指令,使之仅对文空间中的某个目录及其子目录生效
14、<Files filename></Files>------>提供基于文件名的访问控制
15、TypesConfig /etc/mime.types ----->MIME类型配置文件的位置
16、HostnameLookups off|on|double ----->启用对客户端的DNS查找,在高并发的情况下最好关闭,因为DNS解析需要耗费资源。
17、日志类型---->访问日志和错误日志
通用日志格式:LogFormat "%h %l %u %t \"%r\" %>s %b" common
访问日志中截取的一个组合日志记录:
127.0.0.1 - tom [12/Jul/2016:22:46:21 +0800] "GET /admin/admin.html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"
(127.0.0.1)%h:发送请求到服务器的客户的IP地址
%l:由客户端identd进程判断的身份,在IndetityCheck 为ON时,Apache才会获得这个值,否则为“-”
(tom)%u:访问该网页的标识(userid),在通过用户认证的时候显示用户名,未通过则显示401,如果网站没有设置密码保护,此项为“-”
[12/Jul/2016:22:46:21 +0800]---->[日/月/年:时:分:秒 时区]
GET /admin/admin.html HTTP/1.1----->客户端发出的包含信息的请求行
304----->状态码
- 返回给客户端 不包括响应头的字节数,因为失败,所以没有返回有效字节数
“-”----->\"%{Referer}i\" Referer请求头,指明该请求是从哪个网页提交的
\"%{User-Agent}i\"---->Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101--->客户端浏览器识别信息
18、Alias------>可以将文档指向非DocumentRoot的文件夹
19、NameVirtualHost----->为一个基于域名的虚拟主机指定一个IP和端口