Web服务实战操练
httpd-2.4常见配置
主配置文件:/etc/httpd/conf/httpd.conf
###Section 1:Global Environment --全局环境配置
###Section2:'Main' server configuration --主服务器配置
###Section3:Virtual Hosts --虚拟主机配置 --2,3一般同时生效
配置格式:
directive value
directive:不区分字符大小写
value:为路径时,是否区分字符大小写,取决于文件系统;
常用配置:
1、修改监听的IP和PORT
Listen [IP-address:]portnumber [protocol]
1、省略IP表示为0.0.0.0
2、Listen指令可以重复出现多次
Listen 80
Listen 8080
3、修改监听socket,重启服务进程方可生效
4、限制其必须通过ssl通信时,protocol需要定义为https
2、持久连接
Persistent Connection:tcp连接建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行;
如何断开?
时间限制
数量限制 --无论先达到保持时间还是先超过最大数量都会立即断开
副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常响应
折衷:使用较短的持久连接时长,以及较少的请求数量
KeepAlive On|Off --启动|关闭长连接
KeepAliveTimeout 15 --保持15秒
MaxKeepAliveRequests 100 --保持连接时间内获取资源最大数量
注:
httpd -t 可以测试配置内容是否有语法错误
httpd-2.4的KeepAliveTimeout可以是毫秒级
KeepAliveTimeout num[ms]
3、MPM
httpd-2.4通过编辑/etc/httpd/conf.modules.d/00-mpm.conf --取消注释所选定的并重启服务
httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;CentOS 6的rpm包为此专门提供了三个应用程序文件
httpd(prefork),httpd.worker,httpd.event,分别用于实现对不同的MPM机制的支持;确认现在使用的是哪个程序文件的方法:
ps aux | grep httpd
默认使用的为/usr/sbin/httpd,其为prefork的MPM模块
查看httpd程序的模块列表:
查看httpd程序帮助:
#httpd -h
查看静态编译的模块:
#httpd -l
查看静态编译及动态编译的模块
#httpd -M --标记为static为静态 标记为shared为动态
更换使用httpd程序,以支持其他MPM机制
vim /etc/sysconfig/httpd
#HTTPD=/usr/sbin/httpd.event
#HTTPD=/usr/sbin/httpd.worker 去掉注释符更换
注:重启服务进程方可生效
MPM配置 --vim /etc/httpd/conf/httpd.conf
prefork的配置
<IfModule prefork.c> --满足程序模块为prefork.c才生效
StartServers 8 --启动后创建空闲进程的数量
MinSpareServers 5 --最少空闲进程数
MaxSpareServers 20 --最大空闲进程数 -注:最大空闲进程数应大于启动空闲数
ServerLimit 256 --生命周期内最大子进程数量
MaxClients 256 --最大子进程数量(最大并发请求数量) -ServerLimit和MaxClients相同
MaxRequestsPerChild 4000 --每个子进程最大处理进程数量 -进程处理完立即删除
</IfModule>
worker的配置:
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareServers 25
MaxSpareServers 75
ThreadsPerChild 25 --每个子进程生成线程数 --4x25>75需减少一子进程
MaxRequestsPerChild 0 --0表示无限制,可一直处理
</IfModule>
PV,UV
PV:Page View
UV:User View
IP:
4、DSO
配置指定实现模块加载
LoadModule <mod_name> <mod_path> --模块名称① 模块路径
模块文件路径可使用相对路径:
相对于ServerRoot (默认/etc/httpd)
5、定义'Main' server的文档页面路径
ServerName --网站主机名
语法:ServerName [scheme://]fully-qualified-domain-name[:port]
DocumentRoot ""
文档路径映射:
DocumentRoot指向的路径为URL路径的起始位置
其相当于站点URL的根路径
URL PATH与FileSystem PATH不是等同的,而是存在一种映射关系;
URL / --> FileSystem /var/www/html
/images/logo.jpg --> /var/www/html/images/logo.jpg
注:
①模块名称可从httpd -l上查看;
如图所示,根据昵称可从 /etc/httpd/conf.modules.d/下查找相对应的配置文件 加上以及取消#号即可动态装卸载