httpd配置文件详解
httpd的配置文件/etc/httpd/conf/httpd.conf
在完成安装httpd软件之后,就会生成httpd的配置文件,这个文件就是/etc/httpd/conf/httpd.conf
在这个文件中,主要分成3部分组成。
### Section 1: Global Environment
第一部分表示全局环境配置段
### Section 2: 'Main' server configuration
第二部分表示主服务配置段
### Section 3: Virtual Hosts
第三部分表示虚拟主机配置段
在配置文件中,以#开头的行都表示注释信息
/etc/httpd/conf/httpd.conf的主要内容是:
ServerTokens OS
#在响应报文的header显示的信息,OS表示Apache软件版本号。
ServerRoot "/etc/httpd"
#httpd工作进程(或者子进程)的根目录。
PidFile run/httpd.pid
#httpd进程的pid文件
Timeout 120
#接受和发送前的等待时间
KeepAlive Off
#是否启用长连接,on表示启用,off表示关闭。
MaxKeepAliveRequests 100
#表示长连接允许的最大请求量,超过此请求数时,长连接也会断开。
KeepAliveTimeout 15
#表示等待下一个请求的超时时间,如果在该时间内没有发起下一个请求,则断开长连接。
##prefork处理请求模型的相关属性
<IfModule prefork.c> #如果prefork.c这个模块存在,则下面的属性就生效。且MPM机制为prefork
StartServers 8 #启动服务时生成的工作进程数(属主为root的进程为主进程)
MinSpareServers 5 #保留最小的空闲进程数
MaxSpareServers 20 #保留最大的空闲进程数
ServerLimit 256 #最大的活动进程数
MaxClients 256 #允许同一时刻最大请求数,即最大并发数。此值要小于等于ServerLimit的值。
MaxRequestsPerChild 4000 #每一个进程在生命周期内允许服务的最大请求数
</IfModule>
##worker模型处理机制
<IfModule worker.c> #如果worker.c模块存在的话,则下面的属性就生效,其MPM机制为worker
StartServers 2 #服务启动时生成的工作进程数
MaxClients 150 #允许同一时刻的最大请求数,即最大并发数
MinSpareThreads 25 #保留最少的线程数
MaxSpareThreads 75 #保留最大的线程数
ThreadsPerChild 25 #每一个进程生成多少个线程
MaxRequestsPerChild 0 #每一个进程可以服务的最大请求数,0表示无限制
</IfModule>
#Listen 12.34.56.78:80
#只监听某一个主机的请求,可以监听多个主机的80端口
Listen 80
#监听的端口号,没有加ip,则监听系统上所有ip的80端口。
##
Include conf.d/*.conf
#httpd的配置文件还包含这些文件conf.d/*.conf。
User apache
Group apache
#httpd工作进程的属主和属组。
##
ServerAdmin root@localhost
#服务器管理员的邮箱地址,当有问题时,apache会发送邮件给管理员。
ServerName www.example.com:80
#设置服务器的主机名,如果这一行不启用的话,那么在执行service httpd {restart|start}时,系统会反解本地ip,是否有对应的主机名;如果有,则将解析出来的主机名当做服务器的主机名;如果没有,可能会出现报错。解决办法就是在/etc/hosts文件这添加一行本地ip到localhost的映射关系即可。
##
DocumentRoot "/var/www/html"
#文档根目录,默认网页都是存放在这个目录下的。
ErrorLog logs/error_log
#httpd的错误日志文件,这里使用的是相对路径(相对于/etc/httpd来说的),所以完整路径是/etc/httpd/logs/error_log。
LogLevel warn
#定义日志级别,日志级别为warn。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
##这里定义的是日志文件记录信息的几种格式,combined等字样为格式名称。
%h:表示Remote host,远程主机ip(客户端ip)
%l:表示Remote logname,如果没有,则显示"-"
%u:表示Remote User,认证时的用户名,如果没有,也显示为"-"
%t:接受请求的时间
%r:请求报文的起始行
%>s:最近一次返回的响应状态码
%b:响应报文的header大小,单位为字节
%{header_name}i:记录请求报文首部的内容(即value)
CustomLog logs/access_log combined
#定义访日志文件,这里使用的是相对路径,且格式为上面的combined格式。
Alias /icons/ "/var/www/icons/"
#定义路径别名。
##定义容器属性
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
##这里定义的是一个容器,使用<Directory><Directory/>来包含进来,里面都是对这个目录“/var/www/icons”的属性定义
options的值有:
none:所有的都不启用
Index:当主页面不存在时,将目录中的文件以列表的形式显示出来。比较危险。
FollowSynLinks:允许访问符号链接指向的源文件
Includes:允许使用mod_include执行服务器端包含(SSI)
ExecCGI:允许使用mod_cgi模块执行CGI脚本
IncludesNOEXEC:允许执行服务器端包含,但是不允许执行脚本
MultiViews:允许使用mod_negotiation模块实现内容协商
SymLinksIfOwnerMatch:在链接文件属主属组与原始文件的属主属组相同时,允许跟随符号连接所指向的原始文件
ALL:支持所有选项
AllowOverride:none表示启用下面的指令(即启用基于ip的访问控制)。
Order:定义主机的访问功能,allow表示允许,deny表示拒绝,处在这一行的最后单词(allow或者deny表示默认行为)。
Order allow,deny 这条语句的意思如下
a、默认动作为deny。
b、仅被allow匹配的表示允许;仅被deny匹配的表示拒绝。
c、即没被allow匹配的,也没被deny匹配的,则执行默认动作,即被deny。
d、即被allow匹配的,也被deny匹配的,则匹配最后一个控制,即被deny。
Order deny,allow 这条语句的意思如下
a、默认动作为allow
b、仅被allow匹配的表示允许;仅被deny匹配的表示拒绝。
c、即没被allow匹配的,也没被deny匹配的,则执行默认动作,即被allow。
d、即被allow匹配的,也被deny匹配的,则匹配最后一个控制,即被allow。
Allow from all:表示允许所有的。在这里all表示所有的ip或者主机地址。
deny from all:表示拒绝所有的。在这里all表示所有的ip或者主机地址。
对于地址的表示方式,可以有以下几种:
1、IP,如192.168.108.15
2、network/netmask,如192.168.108.0/24,192.168.108.0/255.255.255.0
3、Hostname,例如:www.baidu.com
4、Domainname,例如baidu.com
5、partial IP ,例如172.16,系统会自动补成172.16.0.0/16
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#定义脚本路径别名。
DirectoryIndex index.html index.html.var
#定义默认主页面。
UserDir disable
#定义是否允许访问某个用户家目录下的网页,访问时apache用户对该家目录要有x的权限。disable表示禁用此功能。
LoadModule auth_basic_module modules/mod_auth_basic.so
##加载DSO模块,前面为模块名称,后面为模块路径。
AccessFileName .htaccess
#只有.htaccess中定义的用户才可以访问服务器。
NameVirtualHost *:80
#表示是否启用基于域名的虚拟主机。
AddDefaultCharset
#指定默认字符集
以上就是httpd的配置文件中比较常见的参数,关于更多的参数,如果有需要,可以参考apache的官网手册查看http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex
本文出自 “linux学习之路” 博客,谢绝转载!