众所周知,httpd是运维工程师的重中之重,下面我们来了解一下httpd服务。
我们以CentOS6为例。
1:我们先来安装一下httpd yum -y install httpd
2:启动httpd服务,service httpd start 然后关上你的防火墙 iptables -F 打开你的浏览器输入自己的IP 就会出现页面。这是在/etc/httpd/cond.d/welcome.conf配置的。
3:好了 ,我们的httpd服务就起来了,下面我们来看一下它的主配置文件。/etc/httpd/conf/httpd.conf
httpd的主配置文件有3个配置段组成:
33 ### Section 1: Global Environment:全局配置
245 ### Section 2: 'Main' server configuration:主机配置
973 ### Section 3: Virtual Hosts:虚拟主机配置
不过,主机配置和虚拟主机配置不会同时生效。
要是要修改配置文件最后先备份,这是防患于未然,修改后要用httpd -t 测试一下
修改监听的地址端口
Listen [IP:]PORT(端口)
可定义多次:如 Listen 80 Listen 8080
省略IP,标示0.0.0.0
3: MPM:多路处理模块
定义httpd基于何种并发模型来影响大容量的用户请求
常见的有三种模型:
prefork:一个进程响应一个请求
worker: 一个线程响应一个请求
event:一个进程响应多个请求
因为我们用的是httpd 2.2的版本,MPM机制不支持DSO机制,event为测试模式
我们可以用dttpd -M 命令查看所有模块 默认为prefork 如果你想修改MPM模式,在/etc/sysconfig/httpd
在/etc/httpd/conf/httpd.conf主配置文件下有MPM各种模式的详细参数
我们以perfork为例:
103 StartServers 8 :预见创建的空子进程数为8个
104 MinSpareServers 5 :最小空闲进程为5个
105 MaxSpareServers 20 :最大空闲进程为20个
106 ServerLimit 256 :能够响应的服务进程数256个
107 MaxClients 256 :最大客户端数量为256个
108 MaxRequestsPerChild 4000 :一个进程最大响应的进程次数为4000次
4.DSO:动态模块装载
通常用LoadModule命令
格式为:LoadModule Mod-name modules/Module.file.so
一般使用相对路径,相对于SereverRoot指令的路径而言:/etc/httpd/
5.'Main'Server :主服务器
在主配置文件/etc/httpd/conf/httpd.conf下面找到ServerName,定义主机名如:
ServerName
如果你想制定访问路径,修改DocumentRoot "/var/www/html" 默认为/var/www/html
6、站点资源访问控制
基于文件系统进行
<Directory "/PATH/TO/SOME_DIR">
</Directory>
<File "">
</File>
<FileMatch "PATTERN">
</FileMatch>
基于url路径进行
<Location "/PATH/TO/SOME_URL">
</Location>
<LocationMatch "URL_PATTERN">
...
</LocationMatch>
目录中的常用指令:
(1) Options:用于定义资源的展示方式;后跟以空白字符分隔的“选项”列表
Indexes:允许索引;一般不允许
FollowSymLinks:允许跟踪符号链接;一般不允许 SymLinksifOwnerMatch:属主一致,可以跟踪
ExecCGI:允许执行CGI脚本;
7.定义站点主页面:
DirectoryIndex index.html index.html.var自左而右搜索
在主配置文件下面还有很多需要我们注意的地方。多加学习吧