程序环境:

httpd 2.2(Centos 6)

配置文件:

       /etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

 

服务脚本:

       /etc/rc.d/init.d/httpd

       服务脚本会使用的配置文件: /etc/sysconfig/httpd

 

主程序文件:

       /usr/sbin/httpd

       /usr/sbin/httpd.event

       /usr/sbin/httpd.worker

 

日志文件目录:

       /var/log/httpd

              access_log: 访问日志

              error_log: 错误日志

 

站点文档目录:

       /var/www/html

 

模块文件路径:

       /usr/lib64/httpd/modules

 

 

MPM特性(Multipath Processing Modules):

prefork:多进程模型,每个进程响应一个请求

       一个主进程,负责生成n个子进程(被称为工作进程),每个子进程处理一个请求,即使没有请求,也会预先生成多个空闲进程以随时等待请求到达,最大不会超过1024个,即并发量最大为1024个

 

worker:多线程模型,每个线程响应一个请求

       一个主进程,生成多个子进程,每个子进程负责生成多个线程,每个线程响应一个请求

       例:m子进程,每个进程生成n线程,总共有m*n个线程处理请求

 

event:事件驱动模型,每个线程响应n个请求

       一个主进程,生成m个子进程,每个进程响应n个请求

注:

       httpd-2.2中,event为测试使用

       httpd-2.4中,event可生产使用

 

 

 

prefork

httpd基础_基础

 

 

worker

httpd基础_基础_02

 

 

修改工作模式

vim /etc/sysconfig/httpd

httpd基础_httpd_03

 

 

持久连接

配置参数:

httpd基础_httpd_04

 

测试方法:

1.    未开启持久连接

telnet 192.168.1.101 80

       GET / HTTP/1.1

       Host: 192.168.1.101

httpd基础_httpd_05

 

httpd基础_httpd_06

 

 

2.    开启持久连接

telnet 192.168.1.101 80

GET / HTTP/1.1

Host: 192.168.1.101

 

httpd基础_httpd_07

 

副作用:

       一个进程维护一个持久连接,对并发访问量较大的服务器,打开持久连接功能后,进程无法及时释放,会使有些请求得不到响应,必须排队

 

推荐配置:

       限制一个持久连接的请求数量,并限制较短的持久连接时间(如2秒),在httpd-2.4中,支持毫秒级持久时间

 

 

 

定义‘Main’ server的文档页面路径:

httpd基础_httpd_08

 

httpd基础_基础_09

 

 

使用路径别名 Alias:

httpd基础_httpd_10

效果:

httpd基础_httpd_11

 

 

设定默认字符集

httpd基础_基础_12

 

 

 

模块相关

httpd -l         //查看静态编译的模块

 

httpd -M        //查看所有已加载的模块

httpd基础_httpd_13

 

 

日志相关:

错误日志

       ErrorLog logs/error_log

       LogLevel warn

httpd基础_httpd_14

 

 

访问日志(可分别给不同的虚拟机指定不同的访问日志):

CustomLog logs/access_logcombined

 

httpd基础_基础_15

 

httpd基础_基础_16

%h        客户端IP地址

%l         Remote logname(from identd,if supplied). -表示为空

%u        Remoteuser, (from auth;may be bogus if return status (%s) is 401)

%t         服务器收到请求的时间

%r        Firstline of request,请求报文的道行信息(包含methodurl version)

%>s       响应状态码

%b        响应报文的大小,单位是字节,不包括响应报文首部

%{Referer}i  表示当前资源的访问入口,即从哪个页面跳转而来。-表示直接输入url访问

%{User-Agent}i   使用什么应用程序发送的请求(如浏览器)

 

详情:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats