httpd 2.2版本
[root@www conf]# grep "Section" httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts
1.Global Environment
ServerTokens
作用:此指令控制server返回给客户端的响应头字段是否包括服务器的通用OS类型的描述以及有关编译模块的信息。
可设置值:Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
默认值: ServerTokens OS
测试:ServerTokens Prod
ServerRoot "/etc/httpd"
作用:httpd的根目录,此目录下包含configuration, error, and log files
PidFile run/httpd.pid
作用:服务器记录守护进程pid的文件,相对路径,相对于ServerRoot指定的根目录
Timeout 60
作用:在请求失败前等待特定的时间长
KeepAlive Off
作用:是否允许长链接,默认否
MaxKeepAliveRequests 100
作用:允许持久连接的最大请求数
KeepAliveTimeout 15
作用:服务器在持久连接上等待后续请求的时间量
MPM设置:
三种工作模型:
prefork 一个请求用一个进程响应
worker 一个请求用一个线程响应,启动多个进程,每个进程生成多个线程。在linux上 经测试worker并不理想
event 一个进程处理多个请求,2.2版本不建议使用,测试。 2.4可使用。
<IfModule prefork.c> #如何模式是prefork.c就处理以下指令
StartServers 8 #要启动的服务进程数
MinSpareServers 5 #最小空闲进程数
MaxSpareServers 20 #最大空闲进程数
ServerLimit 256 #服务器生存期内MaxClients的最大值
MaxClients 256 #允许启动的最大服务器进程数
MaxRequestsPerChild 4000 #一个服务器进程服务的最大请求数
Listen 80 监听端口
作用:服务器侦听的IP地址和端口
LoadModule 加载模块
作用:对象文件或库中的链接,并添加到活动模块列表中
Include conf.d/*.conf
作用:包括服务器配置文件中的其他配置文件
User apache
作用:应答请求的用户
Group apache
作用:应答请求的用户组
2.'Main' server configuration
ServerAdmin root@localhost
作用:服务器在发送给客户端的错误消息中包含的电子邮件地址
ServerName www.example.com:80
作用:用主机名[端口]标识服务器
UseCanonicalName Off
作用:配置服务器如何确定它自己的域名
当设置为“off”时,Apache将使用客户端提供的主机名和端口。当设置为“on”时,Apache将使用servername指令的值。
DocumentRoot "/var/www/html"
作用:构成从Web上可见的主文档树的目录
注:URL中的路径是相对于DocumentRoot指定的路径而言。
directory:对目录的访问控制机制
Options FollowSymLinks
AllowOverride AuthConfig
Order allow,deny #这里deny是默认值,只要是没有拒绝的都可以访问这个/var/www/html下文件
#注:order:是用于定义基于主机的访问功能,可以是IP/网络地址/主机名
Allow from all
AuthType Basic
AuthName "so..."
AuthUserFile "/etc/httpd/conf/htpasswd"
Require user root
其中:
#options:配置特定目录中的功能,可设置为:ALL 所有功能|ExecCGI 可执行CGI|FollowSymLinks 可追寻符号链接的对应文件 | indexes 若映射到目录的URL无DirectoryIndexes指令指定Index.html或其他则返回目录列 表|...
#AllowOverride允许以.htaccess结尾的文件覆盖以下设置(Order、allow),值:ALL 可以被.htaccess覆盖以下设置|NONE .htaccess设置无效|directive-type 有AuthConfig控制授权指定|FileInfo 控制文档类型|Indexes 控制索引类型
当AllowOverride AuthConfig时,可用的指令AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType,AuthUserFile,Require user/group..
AuthType用户身份认证类型,有两类:Basic/Digest
AuthName授权领域,用于HTTP身份认证
AuthUserFile设置包含用于身份验证的用户和密码列表的文本文件的名称
Require哪些可以经过用户认证访问资源,可用user +用户名,group+组名,valid-user 所有有效用户
测试过程:
实际代码:
Options none AllowOverride AuthConfig Order allow,deny Allow from all AuthType Basic AuthName "test" AuthUserFile "/etc/httpd/conf/htpasswd" Require user ding
使用htpasswd -c -m /etc/httpd/conf/htpasswd ding创建文件并为ding用户设置访问密码
DirectoryIndex index.html index.html.var a.html
作用:当客户端请求目录时默认查找的资源,设置默认访问页面,当设置的文件都存在,自左向右。
AccessFileName .htaccess 分布式配置文件的名称,若未目录设置此指令,会在目录下及子目录下查找.htaccess文件
Order allow,deny
Deny from all
Satisfy All
TypesConfig /etc/mime.types #mime.types的位置
作用:设置mime类型配置文件的位置
DefaultType text/plain #若不确认是什么类型,将发送默认类型值
HostnameLookups Off #在客户端IP地址上启用DNS查找,建议off
ErrorLog logs/error_log #错误日志路径及文件名
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined #访问日志格式及名称,%h 客户端地址 %l 远端主机的登录名称 %u 登录网站上的用户名 %t 日志事件产生的时间 %r请求报文的第一行(方法、资源、版本号) %s 状态码 %>s 最近一次请求的状态码 %b 请求了多少字节 %referer 从哪个页面到这里 %user-agent 浏览器类型
CustomLog logs/access_log combined #访问日志
ServerSignature On #在服务器生成的文档上配置页脚
Alias /error/ "/var/www/error/" #将URL映射到文件系统位置,可使用http:ip/error/来访问/var/www/error/index.html资源
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #将URL映射到文件系统位置并将目标指定为CGI脚本
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8 #目录索引的各种配置设置
DefaultIcon /icons/unknown.gif #未配置特定图标时为文件显示的图标
AddDefaultCharset On|Off|charset #响应内容类型为text/plain或text/html时要添加的默认字符集参数,如AddDefaultCharset UTF-8
AddType application/x-compress .Z #将给定的文件扩展名映射到指定的内容类型
AddHandler type-map var #将文件扩展名映射到指定的处理程序
AddOutputFilter INCLUDES .shtml #将文件扩展名映射到将处理服务器响应的筛选器
3.Virtual Hosts
为什么要有虚拟主机?实现一个web站点,需在操作系统上,需要一个实时在线的服务器,需要资源,对于小型网站来说,仅需在线即可,配一台物理主机浪费资源。
通过同一个物理主机,apache服务不同站点。
虚拟主机:基于IP、基于端口、基于域名三种。
NameVirtualHost *:80 指定名称虚拟主机的IP地址
NameVirtualHost *:80ServerAdmin [email protected] DocumentRoot /data/www/ ServerName www.1.com ErrorLog logs/www-error_log CustomLog logs/www-access_log combined DirectoryIndex index.html Options FollowSymLinks AllowOverride none Order allow,deny Allow from all ServerAdmin [email protected] DocumentRoot /data/ftp/ ServerName ftp.2.com ErrorLog logs/ftp-error_log CustomLog logs/ftp-access_log combined Options indexes AllowOverride AuthConfig AuthType Basic AuthName "1" AuthUserFile "/data/Auth/ps" Require valid-user