1、Web服务器配置与应用内容1 Web服务基本概念2 Apache服务器3 Apache图形配置工具4 Apache的配置文件Web服务基本概念 万维网 WWW (World Wide Web)并非某种特殊的计算机网络。 万维网是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。 这种访问方式称为“链接”。万维网提供分布式服务 万维网站点 A万维网站点 C万维网站点 E万维网站点 D万维网站点 B链接到链接到链接到链接到链接到链接到超媒体与超文本万维网是分布式超媒体(hypermedia)系统,它是超文本(hype
2、rtext)系统的扩充。一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。 万维网的工作方式 万维网以客户服务器方式工作。 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。 在一个客户程序主窗口上显示出的万维网文
3、档称为页面(page)。万维网必须解决的问题 (1) 怎样标志分布在整个因特网上的万维网文档? 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。 使每一个文档在整个因特网的范围内具有唯一的标识符 URL。 万维网必须解决的问题 (2) 用何协议实现万维网上各种超链的链接? 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。 HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。 万维网必须解决的问题 (3) 怎样使各种万维网文档都
4、能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链? 超文本标记语言 HTML (HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。 万维网必须解决的问题 (4) 怎样使用户能够很方便地找到所需的信息? 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。 URL 的一般形式 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是::/:/ ftp 文件传送协议 FT
5、Phttp 超文本传送协议 HTTPNews USENET 新闻URL 的一般形式(续) 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是::/:/ 是存放资源的主机在因特网中的域名URL 的一般形式(续) 由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。 URL 的一般形式是::/:/有时可省略使用 HTTP 的 URL 使用 HTTP 的 URL 的一般形式 http:/:/ 这表示使用 HTTP 协议使用 HTTP 的 URL 使用 HTTP 的 URL 的一般形式 http:/:/ 冒号和两个斜线是规定的格式使用
6、 HTTP 的 URL 使用 HTTP 的 URL 的一般形式 http:/:/ 这里写主机的域名使用 HTTP 的 URL 使用 HTTP 的 URL 的一般形式 http:/:/ HTTP 的默认端口号是 80,通常可省略使用 HTTP 的 URL 使用 HTTP 的 URL 的一般形式 http:/:/ 若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。 万维网的工作过程 因特网服务器链接到URL的超链HTTP 使用此 TCP 连接浏览器 程序服务器 程序HTTP客户清华大学院系设置建立 TCP 连接释放 TCP 连接HTTP 响应报文 响应文档HTTP 请求
7、报文 请求文档用户点击鼠标后所发生的事件 (1) 浏览器分析超链指向页面的 URL。(2) 浏览器向 DNS 请求解析 的 IP 地址。(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。(4) 浏览器与服务器建立 TCP 连接(5) 浏览器发出取文件命令: GET /chn/yxsz/index.htm。(6) 服务器给出响应,把文件 index.htm 发给浏览器。(7) TCP 连接释放。(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。代理服务器(proxy server) 代理服务器(proxy server)又称为万维网高速缓存(Web cac
8、he),它代表浏览器发出 HTTP 请求。 万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。 当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。 使用高速缓存可减少访问因特网服务器的时延 校园网源点服务器2 Mb/s因特网浏览器R1R2这条链路上的时延很大没有使用高速缓存的情况所有万维网通信量都经过这条链路使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(1) 浏览器访问因特网的服务器时,要先与校园网的高速缓存建立 TCP 连接,并向高速缓存发出 HTTP 请求报文
9、使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(2) 若高速缓存已经存放了所请求的对象,则将此对象放入 HTTP 响应报文中返回给浏览器。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(3) 否则,高速缓存就代表发出请求的用户浏览器,与因特网上的源点服务器建立 TCP 连接,并发送 HTTP 请求报文。使用高速缓存的情况校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(4) 源点服务器将所请求的对象放在 HTTP 响应报文中返回给校园网的高速缓存。使用高速缓存的情况
10、校园网校园网的高速缓存(代理服务器)源点服务器2 Mb/s因特网浏览器R1R2(5) 高速缓存收到此对象后,先复制在其本地存储器中(为今后使用),然后再将该对象放在 HTTP 响应报文中,通过已建立的 TCP 连接,返回给请求该对象的浏览器。状态码都是三位数字 1xx 表示通知信息的,如请求收到了或正在进行处理。 2xx 表示成功,如接受或知道了。 3xx 表示重定向,表示要完成请求还必须采取进一步的行动。 4xx 表示客户的差错,如请求中有错误的语法或不能完成。 5xx 表示服务器的差错,如服务器失效无法完成请求。第5章 Web服务器的配置与应用1 Web服务基本概念2 Apache服务器3
11、 Apache图形配置工具4 Apache的配置文件2 Apache服务器 Apache是一款提供Web服务的软件 1995年NCSA,1999年Apache Group 纪念美洲印第安人的apache族 a patchy web server (读音双关语) HTTPd精灵程序提供Web服务 Apache Project包含更多内容 采用灵活的模块结构Apache项目与HTTPd Apache项目包含许多软件开发子项目 HTTP Server是其中之一Apache服务器的安全性(1) 采用选择性访问控制和强制性访问控制的安全策略 DAC选择性访问控制,基于用户名/口令,属于传统常规访问控制方
12、式,发出连接请求的客户需要提交用户名和口令,Apache验证后决定是否授予访问许可。 MAC强制性访问控制,客户IP/域名。是依据发出连接请求的客户的IP地址或所在的域名进行界定访问许可。若客户不再访问许可范围内,则拒绝客户的任何请求。Apache服务器的安全性(2) Apache的安全模块 mod_access模块:根据访问者的IP地址、域名或主机名等控制对Apache服务器的访问。是基于主机的访问控制。 mod_auth模块 :用于用户和组的认证授权。用户的用户名和口令存于纯文本文件中,因此其安全性还要依赖操作系统的安全性访问控制。Apache服务器的安全性(2) Apache的安全模块
13、mod_auth_digest模块:采用MD5数字签名的方式来进行用户的认证,不过需要客户端的相应的支持,即浏览器等客户端软件需要具有相应的支持MD5数字签名的功能。 mod_auth_anon模块:与mod_auth模块功能类似,当允许匿名(anonymous)用户登录,以用户输入的E-mail地址作为用户口令。 SSL(Secure Socket Layer)支持模块:安全套接层协议,提供网络上的安全交易等涉及秘密数据的保护服务。它相当于一个外部模块,通过第三方程序的结合提供安全的网上交易支持。检查Apache服务器(1) 检查系统中是否安装了Apache服务器 rpm -qa | gre
14、p httpd 检查Apache服务器(2) 检查是否启动了Apache服务器 ps aux | grep httpd 检查Apache服务器(3) 访问测试页面 http:/localhost 安装Apache服务器 预备工作 下载源码包 httpd-2.2.6.tar.gz 解开软件源码包 配置源树 ./configure命令 生成 make 安装 make install 修改配置文件 httpd.conf 运行测试 apachectl -k start Apache的版本与升级 新版本程序的发布声明 主版本升级 2.02.2 小版本升级 2.2.552.2.57第5章 Web服务器的配
15、置与应用1 Web服务基本概念2 Apache服务器3 Apache图形配置工具4 Apache的配置文件3 Apache图形配置工具 完成Apache简单的配置 “系统”|“管理”|“服务器设置”|“HTTP”启动图形配置管理工具 HTTP服务器图形配置工具包括: 主(Main) 虚拟主机(Virtual Hosts) 服务器(Server) 调整性能(Performance Tuning)服务器基本配置 服务器名(Server Name) 网主电子邮件地址(Webmaster email address) 访问端口(port)服务器基本配置 服务器名(Server Name) 网主电子邮件
16、地址(Webmaster email address) 访问端口(port)服务器名是一个完全符合域名命名规则的名字,应与主配置文件/etc/httpd.conf中的ServerName指令对应。是Web服务器的主机名,用户创建重定向url地址,若不指定服务器名,则Web服务器使用从系统获得的IP地址表示Web服务器。该名字不一定必须是服务器计算机的IP地址所对应的域名。服务器基本配置 服务器名(Server Name) 管理员电子邮件地址(Webmaster email address) 访问端口(port)管理员电子邮件地址选项对应于httpd.conf配置文件中的ServerAdmin指
17、令。如果在服务器的出错页面上包含了改Email地址作为联系用电子邮件,则发现错误的用户可以向Web服务器的管理员发送电子邮件报告问题。默认地址为:rootlocalhost。服务器基本配置 服务器名(Server Name) 管理员电子邮件地址(Webmaster email address) 访问端口(port)访问端口定义服务器接受访问请求的端口。该选项对应配置文件httpd.conf中的Listen指令。默认端口是80端口。默认设置与虚拟主机当用户访问Web服务器而没有指定网页文件名称时,服务器会按照目录页搜索列表中的项目一次搜索对应的文件,若找到则返回给用户。该列表与httpd.con
18、f中的DirectoryIndex对应。否则服务器会自动产生目录下文件列表返回响应用户的请求。默认设置与虚拟主机设置Apache服务器发生错误时将用户重定向到其他地址。如果用户访问的时候发生了某种错误,则服务器默认会显示一个简短的错误代码和信息。单击“编辑”,管理员可以再弹出的的对话框中修改这个默认设置。创建虚拟主机(1) Apache服务器可以创建多台虚拟主机 用户不同的请求由不同的虚拟机响应 用户感觉是访问不同的Web服务器 虚拟主机使得Web请求可以发送到不同的IP地址或者主机名,但是由相同的Apache进程处理创建虚拟主机(2) 虚拟主机名 文档根目录 网主电子邮件地址 主机信息 默认
19、虚拟主机 基于IP的虚拟主机 基于名称的虚拟主机 创建虚拟主机(3)输入虚拟主机名,配置工具用此名字来区分不同的虚拟主机。设置虚拟主机的根文档的位置,它对应httpd.conf配置文件中的虚拟主机指令DocumentRoot指令。网站管理员的电子邮件地址,可以显示在错误网页上,方便用户报告。1. 默认虚拟主机:当需要某个IP地址响应用户的访问而其他虚拟主机没有设定该IP地址的时候。默认虚拟主机就响应该IP地址的访问请求,若没有默认虚拟主机,则使用主服务器设置。注意:只能设置一个默认虚拟主机。2、基于IP的虚拟主机:需要指定虚拟主机响应请求的IP地址和服务器主机名。可以指定多个IP地址,以空格隔
20、开。若需要指定端口,则使用“IP地址:端口”的格式。3、基于名称的虚拟主机:需要设置IP地址、主机名和别名。IP地址的设定与“基于IP的虚拟主机”相同。添加别名会在httpd.conf配置文件中的虚拟主机VirtualHost指令中增加ServerAlias指令。第5章 Web服务器的配置与应用1 Web服务基本概念2 Apache服务器3 Apache图形配置工具4 Apache的配置文件4 Apache的配置文件 Apache服务器安装完毕后,几乎不需什么配置就已经可以正常运行了 为了满足不同的需要,包括安装问题的考虑,还需要细致地调整Apache服务器的配置Apache的目录和文件 目录
21、 配置文件 启动脚本httpd.conf的文件格式(1) 是Apache最重要的配置文件 一般位于/etc/httpd/conf目录下 修改配置后,需重启httpd服务才生效 文件中每行一条指令(directive) 大小写不敏感 以#开头的行是注释 两种方式进行参数的配置: 属性与取值域 块方式 httpd.conf的文件格式(2) ServerAdmin rootlocalhost DocumentRoot /var/www/html/ ServerName Listen 80httpd.conf的文件格式(3) 条件块 表示指令的处理需要根据指定模块是否存在为条件来进行,test为真时处
22、理块 test为module表示当Apache中包含了名为module的模块的时候处理块内指令 test为!module表示名为module的模块不在Apache中的时候,块内指令被处理 httpd.conf的文件格式(3) 测试配置文件 apachectl t 返回Syntax OK时表示配置文件语法正确 httpd服务的启动(1) 使用图形化管理服务的工具httpd服务的启动(2) 命令方式启动服务 service httpd start/stop/restart $service httpd start#启动启动httpd服务服务启动启动 httpd:确定确定$service httpd
23、 stop#停止停止httpd服务服务停止停止 httpd:确定确定$service httpd restart#重启动重启动httpd服务服务停止停止 httpd:确定确定启动启动 httpd:确定确定httpd.conf文件解析 httpd.conf文件包括三个部分 Web服务的全局环境(global environment),控制Apache进程整体操作的指令。 定义“主”服务器或者“默认”服务器的参数的指令。主服务器处理虚拟主机不响应的请求,也为所有的虚拟主机提供默认设置。 配置虚拟主机的指令。Web服务的全局环境 ServerTokens ServerRoot PidFile Tim
24、eout KeepAlive MaxKeepAliveRequests KeepAliveTimeout prefork MPM 提供服务器的版本和操作系统信息,不想提供可以改为 minor.Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout prefork MPM 指出服务器保存其配置、出错和日志文件等的根目录。路径的结尾不要添加斜线。 Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepA
25、live MaxKeepAliveRequests KeepAliveTimeout prefork MPM 记录服务器启动进程号的文件。 Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout prefork MPM Web站点的响应时间,默认是120秒。若超时时间仍然没有传输任何数据,则Apache服务器将断开与客户端的连接。Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive Ma
26、xKeepAliveRequests KeepAliveTimeout prefork MPM 一次tcp连接是否持续有效,推荐打开.Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout prefork MPM 如果KeepAlive是on的话,此配置才生效,最大连接请求数,可调大些.设为0表示无限制接入。默认值为100。 Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive MaxK
27、eepAliveRequests KeepAliveTimeout prefork MPM 连续两次连接的间隔时间,若超出设置值则被认为连接中断。默认值为15秒。Web服务的全局环境 ServerTokens ServerRoot PidFile Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout prefork MPM Apache的多路处理模块(MPM)就是用于选择处理网络端口绑定、接受请求并指派子进程处理来自客户端的请求。它不是指令,是一个IFMODULE块。当Apache包含prefork.c模块时,处理如下指令: Start
28、Servers:启动时服务器启动的进程数 MinSpareServers:保有的空闲进程的最小数目 ServerLimit:服务器生命周期内MaxClients取值的最大值。 MaxSpareServers:保有的备用进程的最大数目 MaxClients:服务器允许启动的最大进程数 MaxRequestsPerChild:一个服务进程允许的最大请求数 worker MPM Listen LoadModule Include ExtendedStatus User/GroupWorker MPM 是一个IFMODULE块。当Apache包含prefork.c模块时,处理如下指令: StartSe
29、rvers:启动服务器进程的初始数量 MaxClients:同时刻客户连接的最大数量 MinSpareThreads:空闲工作线程的最小值 MaxSpareThreads:空闲工作线程的最大值 ThreadsPerChild:每个服务器进程的固定工作线程数。 MaxRequestsPerChild:一个服务器进程可以服务的最大请求数 worker MPM Listen LoadModule Include ExtendedStatus User/Group允许绑定Apache服务到指定的IP地址和端口上,以取代默认值。若没有Listen指令,则Apache不能启动。如果仅指定端口,则Apach
30、e在服务器的所有IP地址上监听该端口;若同时指定了IP地址,则服务器在指定的IP地址上的指定端口监听。可以使用多条Listen指令,以指定一系列监听地址和端口。设定Apache绑定到指定的IP地址可以避免Apache监听0.0.0.0 。对于IPV6,必须将地址放在方括号内。 worker MPM Listen LoadModule Include ExtendedStatus User/Group该指令链接目标文件或库,并将模块加入到活动模块的列表中。为了使用生成为DSO(动态共享对象)的模块,必须使用LoadModule指令加载该模块,使模块内的指令在使用之前就已被加载进来。语法:Load
31、Module 模块名字 模块文件的位置。例如:LoadModule status_module modules/mod_status.so worker MPM Listen LoadModule Include ExtendedStatus User/Group该指令将其他配置文件加载进来。如果Include后的参数不是指定一个文件或利用通配符指代的若干文件,而是指定一个目录,Apache会读取该目录及其子目录下的所有文件。建议不要在Include指令中包含目录,因为目录中若有临时文件将导致httpd进程错误。 worker MPM Listen LoadModule Include Ext
32、endedStatus User/Group当调用“server-status”时,控制Apache是产生“完全”状态信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。默认为off worker MPM Listen LoadModule Include ExtendedStatus User/Group运行httpd的用户和组;在系统初始化时必须以root身份运行httpd,然后再切换过去。其参数可以是用户名/组名,也可以是用户ID/组ID。建议创建一个专门的用户和组运行Apache。主服务器配置 ServerAdmin ServerNam
33、e UseCanonicalName DocumentRoot该区建立被 “主” 服务器使用的各项参数。主服务器处理虚拟主机不处理的请求。也为虚拟主机提供默认设置。在该部分出现的指令在虚拟机设置中也可能出现,如果在虚拟主机设置中有相同的指令设置,则会覆盖此处的设置。主服务器配置 ServerAdmin ServerName UseCanonicalName DocumentRoot设置服务器管理员的邮件地址,当发生问题时Apache将向管理员发出邮件。作为一个出错文档,这个地址显示在server-generated页上。 例如:ServerAdmin adminyour-主服务器配置 Serv
34、erAdmin ServerName UseCanonicalName DocumentRootServerName指定Apache用于识别自身的名字和端口号。通常这个值是自动指定的,推荐显式的指定它以防止启动时出错。 如果服务器没有注册DNS名,在这里键入它的IP地址。ServerName :80 主服务器配置 ServerAdmin ServerName UseCanonicalName DocumentRoot UseCanonicalName:决定Apache如何构造自引用的URL地址(URLS)和 CGI程序使用的两个变量SERVER_NAME 和 SERVER_PORT 的指令。三
35、种取值:On、Off或DNS域名,默认为Off。当设置为 “Off” 时,Apache会使用用户端提供的主机名和端口号。当设置为“On”,Apache会使用ServerName指令的值。DNS域名是为了兼容。 主服务器配置 ServerAdmin ServerName UseCanonicalName DocumentRootWeb服务器文档的根目录。默认情况下,所有的请求从这个目录进行应答。但是可以使用符号链接和别名来指向到其他的位置。例如:DocumentRoot /home/redhat/public_html 假设访问请求为:http:/ “/home/redhat/ public_h
36、tml/test.htm”。注意:路径不可用斜线“/”结尾。虚拟目录(1) Web服务器程序要将URL中的路径映射为本地文件系统的路径,指向文档的本地位置,虚拟目录完成这个映射功能。 虚拟目录又称为目录别名。利用别名指令Alias,可以把文档保存在文件系统的其他目录中,而不必放置在DocumentRoot所设定的位置。 虚拟目录(2) Alias指令 Alias /image /ftp/pub/image 注意:只有当路径完全匹配的时候才会正确映射,否则就会发生错误而无法找到请求的文档。虚拟目录(2) Alias指令 Alias /image /ftp/pub/image Alias /ico
37、ns/ /usr/local/apache/icons/ 若别名指令设定的目录在DocumentRoot以外的其他目录,需要显式地允许对目标目录的访问操作。 Alias /image /ftp/pub/image Order allow,deny Allow from all如果在别名中使用了结尾“/”,则服务器要求在请求的url地址中也必须以斜线“/”结尾。目录访问控制(1) 格式directives directory-path是要配置的目录,可以使用通配符“*”和“?”和正则表达式指定目录。目录访问控制(2) Options Indexes FollowSymLinksOptions I
38、ndexes FollowSymLinks/home/users/html、/home/pub/html、/home/var/html等都是受影响的等都是受影响的目录目录/var/abc、/var/www/abc、/var/testabc、/www/ttabc/var/abc等都是符等都是符合该合该正则表达式正则表达式模式的目录模式的目录 目录访问控制(3) 最短匹配优先的次序 多个Directory块与目录或者其父目录匹配 按照最短匹配优先的次序应用指令 目录下的.htaccess文件中的配置指令随其目录执行。 目录访问控制(4)AllowOverride NoneAllowOverride
39、 FileInfo访问/home/web/dir/doc.html文档的步骤为: a) 执行AllowOverride None,禁用了.htaccess文件; b) 执行AllowOverride FileInfo,针对/home/目录作用; c) 顺次应用/home/.htaccess、/home/web/.htaccess和/home/web/dir/.htaccess等文件中的FileInfo指令。目录访问控制(5) 目录指令块中使用的五个指令 Options AllowOverride Deny Allow Order 目录访问控制(6) Options :设定目录中可以执行的功能。
40、 None不允许做任何操作,即不允许访问此目录。是互斥性设置。 All默认设置。除了MultiViews的功能外,用户可做所有的操作。是互斥性设置。 其他取值参见表5-2。目录访问控制(7) AllowOverride 该指令设置在.htaccess文件中允许使用的指令类型。当服务器发现目录下有.htaccess文件的时候,需要确定文件中声明的哪些指令可以覆盖前面的配置指令。.htaccess文件的文件名由AccessFileName指令设置。 AuthConfig FileInfo Indexes Limit Options=Option, 目录访问控制(8)Allow:设置允许访问服务器的
41、主机,控制是基于主机名、IP地址、IP地址范围或者环境变量中获得的客户端请求的其他特征实现的。格式:Allow from all|host|env=env_variablehost|env=env-varialbe 参数有三种形式:1. Allow from all 表示任何主机都可以访问服务器。2. Allow from host 限制可以访问服务器的主机 3. Allow from env=env-variable 基于环境变量进行访问服务器的许可控制,当环境变量存在客户端的请求才可以被接受。可以根据客户端请求的特征来设置环境变量。例如: SetEnvIf User-Agent knock
42、/2.0 let_me_inOrder Deny ,AllowDeny from allAllow from env=let_me_in表示:当客户端浏览器的user-agent字符串是以knock/2.0开头的时候才能访问服务器,其他的则被拒绝。Host部分的几种格式:1、部分域名。主机名字如果与设置的域名匹配或者以之结尾,则此主机被允许访问服务器。例如:Allow from 如果主机是,则符合此设置,可以访问服务器。2、完整的IP地址。明确指定一个IP地址,则具有该IP地址的主机可以访问服务器。例如:Allow from 192.168.203.111Allow from 192.168.
43、2.1 92.168.2.53、部分IP地址。指定IP地址的前1到3个字节,用于限定IP子网中所有主机的访问。例如:Allow from 192.168.0 172.164、网络地址/掩码。设置一个A、B、C、D类网络地址和一个子网掩码x.y.z.w,可以获得更加细致的子网控制。例如:Allow from 202.1164/25252505、网络地址/n。采用CIDR标准的方法来表示。例如: Allow from 202.1164/206、IPV6地址和子网。例如:Allow from 2001:db9:abcd:cced目录访问控制(9) Deny:该指令设置被拒绝访问服务器的主机。可以:基
44、于主机名、IP地址或者环境变量来限制对服务器的访问。 格式:Deny from all|host|env=env_variablehost|env=env-varialbe 参数与Allow指令的参数相同。 目录访问控制(10) Order:该指令设置Allow与Deny的优先次序。Allow和Deny将匹配空间划分为三个:与Allow匹配的、与Deny匹配的、其他。服务器根据访问请求访问的客户端与三个匹配子空间的匹配情况,确定是否接受该访问请求。 Allow,Deny先执行允许访问列表再执行拒绝访问列表。默认情况下降拒绝所有没有明确被允许的客户。 Deny,Allow先执行拒绝访问列表在执行
45、允许访问列表,默认情况下将允许所有没有明确被拒绝的客户。例1:要控制只允许来自域的主机访问服务器,其他的主机的访问请求都拒绝。Order Deny,AllowDeny from allAllow from 例2:控制只允许来自域的主机的访问请求,但是子域中的主机除外。Order Allow,DenyAllow from Deny from 认证 Apache服务器利用以下认证参数,可实现对指定目录的认证控制。 AuthName 认证域名称:指定用户认证域的名称。 AuthType Basic|Digest:设定用户认证的方式,一般使用Basic。 AuthUserFile 文件名:指定认证用户
46、文件名及其保存路径。 AuthGroupFile 文件名:指定认证组群文件名及其保存路径。 Require 参数:指定哪些认证用户或认证组群有权访问指定的目录 。 Require参数有以下三种格式: Require 用户名列表:授权给指定的用户。 Require 组群名列表:授权给指定的组群。 Require valid-user:授权给认证用户文件中所有的用户 认证用户文件 利用htpasswd命令可创建认证用户文件,并设置认证用户。认证用户与Linux系统的用户没有对应关系。 格式:htpasswd 选项 认证用户文件名 用户名 功能:设置指定的认证用户及其认证口令。 选项:-c创建指定的
47、认证用户文件,只在设置第一个认证用户时使用。-D删除指定的认证用户。管理员可以将所有的认证用户划归成多个认证组群。Linux没有提供创建认证组群文件的命令,管理员可以利用任何文本编辑器创建和编辑认证组群文件。认证组群文件中的每一行表示一个组群,其基本格式为:组名:用户名列表例1:将tom设置为认证用户,认证用户文件为/var/www/userpass,尚未创建。htpasswd c /var/www/userpass tom例2:将jack设置为认证用户,认证用户文件为/var/www/userpass,文件已存在。htpasswd /var/www/userpass jack例3:修改认证用
48、户tom的口令,认证用户文件为/var/www/userpass。htpasswd /var/www/userpass tom例4:将认证用户jack从认证用户文件/var/www/userpass中删除。htpasswd -D /var/www/userpass jack Apache服务器可针对目录进行访问控制和认证,可选择以下方式实现:1.编辑httpd.conf文件,直接设定指定目录的访问控制和认证的相关参数。2.在指定目录下创建.htaccess文件,访问控制和认证的相关的参数均保存在.htaccess文件。注意:当使用.htaccess文件可以在不重新启动服务器的情况下改变服务器的
49、配置,但是由于Apache服务器要查找.htaccess文件,将会降低服务器的运行性能。httpd.conf文件中AllowOverride参数可决定.htaccess文件是否有效,以及.htaccess文件中可以使用的配置参数。Web用户验证(1) 可以验证单个用户或者用户组 为单个用户分配密码 也可以为用户组分配密码 建立匿名访问Web用户验证(2) 验证单个用户 编辑主配置文件/etc/httpd/conf/httpd.conf 建立口令文件并为用户设置口令 重新启动httpd服务验证单个用户例1:直接编辑httpd.conf文件,设置/var/www/html/test目录中所有网页文
50、件只允许认证用户访问。前提:防火墙允许WWW服务通过。(1)在/var/www/html目录下新建test目录,并创建index.html文件。(2)编辑httpd.conf文件,添加如下内容。AllowOverride None /不使用.htaccess文件AuthName “share web”AuthType BasicAuthUserFile /var/www/userpassrequire user tomrequire user jack(3) 根据httpd.conf的设置内容,创建认证用户文件/var/www/userpass,并将tom,jack设置为认证用户。(4) 重新