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

httpd.conf--2.2_第1张图片

测试:ServerTokens Prod

httpd.conf--2.2_第2张图片

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用户设置访问密码

httpd.conf--2.2_第3张图片

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 *:80

    ServerAdmin [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