《LinuxWeb服务器配置.ppt》由会员分享,可在线阅读,更多相关《LinuxWeb服务器配置.ppt(134页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linux网络管理及应用Web服务器的配置与应用第5章 Web服务器的配置与应用5.1 Web服务基本概念5.2 Apache服务器5.3 Apache图形配置工具5.4 Apache的配置文件Web服务基本概念n万维网 WWW(World Wide Web)并非某种特殊的计算机网络。n万维网是一个大规模的、联机式的信息储藏所。n万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。n这种访问方式称为“链接”。万维网提供分布式服务 万维网站点 A万维网站点 C万维网站点 E万维网站点 D万维网站点 B链接到链接到链接到链接到链接到链接到超媒体与超文本n
2、万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。n一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网的基础。n超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频图像。万维网的工作方式 n万维网以客户服务器方式工作。n浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。n客户程序向服务器程序发出请求,服务器程序向
3、客户程序送回客户所要的万维网文档。n在一个客户程序主窗口上显示出的万维网文档称为页面(page)。万维网必须解决的问题(1)怎样标志分布在整个因特网上的万维网文档?n使用统一资源定位符 URL(Uniform Resource Locator)来标志万维网上的各种文档。n使每一个文档在整个因特网的范围内具有唯一的标识符 URL。万维网必须解决的问题(2)用何协议实现万维网上各种超链的链接?n在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP(HyperText Transfer Protocol)。nHTTP 是一个应用层协议,它使用 TCP 连接进行可靠的
4、传送。万维网必须解决的问题(3)怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链?n超文本标记语言 HTML(HyperText Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来。万维网必须解决的问题(4)怎样使用户能够很方便地找到所需的信息?n为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)。URL 的一般形式 n由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。nURL 的一
5、般形式是::/:/ftp 文件传送协议 FTPhttp 超文本传送协议 HTTPNews USENET 新闻URL 的一般形式(续)n由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。nURL 的一般形式是::/:/是存放资源的主机在因特网中的域名URL 的一般形式(续)n由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。nURL 的一般形式是::/:/有时可省略使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式 http:/:/这表示使用 HTTP 协议使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式 http
6、:/:/冒号和两个斜线是规定的格式使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式 http:/:/这里写主机的域名使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式 http:/:/HTTP 的默认端口号是 80,通常可省略使用 HTTP 的 URLn使用 HTTP 的 URL 的一般形式 http:/:/若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。万维网的工作过程 因特网服务器链接到URL的超链HTTP 使用此 TCP 连接浏览器 程序服务器 程序HTTP客户清华大学院系设置建立 TCP 连接释放 TCP 连接HTTP 响
7、应报文 响应文档HTTP 请求报文 请求文档用户点击鼠标后所发生的事件(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)n代理服务器(proxy server)又称为万维网高速缓存(Web
8、 cache),它代表浏览器发出 HTTP 请求。n万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。n当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 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 连接,返回给请求该对象的浏览器。状态码都是三位数字 n1xx 表示通知信息的,如请求收到了或正在进行处理。n2xx 表示成功,如接受或知道了。n3xx 表示重定向,表示要完成请求还必须采取进一步的行动。n4xx 表示客户的差错,如请求中有错误的语法或不能完成。n5xx 表示服务器的差错,如服务器失效无法完成请求。第5章 Web服务器的配置与应用5.1 Web服务基本概念5.2 Apache服
11、务器5.3 Apache图形配置工具5.4 Apache的配置文件5.2 Apache服务器nApache是一款提供Web服务的软件 n1995年NCSA,1999年Apache Groupn纪念美洲印第安人的apache族 na patchy web server(读音双关语)nHTTPd精灵程序提供Web服务nApache Project包含更多内容n采用灵活的模块结构Apache项目与HTTPdnApache项目包含许多软件开发子项目nHTTP Server是其中之一Apache服务器的安全性(1)n采用选择性访问控制和强制性访问控制的安全策略nDAC选择性访问控制,基于用户名/口令,属
12、于传统常规访问控制方式,发出连接请求的客户需要提交用户名和口令,Apache验证后决定是否授予访问许可。nMAC强制性访问控制,客户IP/域名。是依据发出连接请求的客户的IP地址或所在的域名进行界定访问许可。若客户不再访问许可范围内,则拒绝客户的任何请求。Apache服务器的安全性(2)nApache的安全模块nmod_access模块:根据访问者的IP地址、域名或主机名等控制对Apache服务器的访问。是基于主机的访问控制。nmod_auth模块:用于用户和组的认证授权。用户的用户名和口令存于纯文本文件中,因此其安全性还要依赖操作系统的安全性访问控制。Apache服务器的安全性(2)nApa
13、che的安全模块nmod_auth_digest模块:采用MD5数字签名的方式来进行用户的认证,不过需要客户端的相应的支持,即浏览器等客户端软件需要具有相应的支持MD5数字签名的功能。nmod_auth_anon模块:与mod_auth模块功能类似,当允许匿名(anonymous)用户登录,以用户输入的E-mail地址作为用户口令。nSSL(Secure Socket Layer)支持模块:安全套接层协议,提供网络上的安全交易等涉及秘密数据的保护服务。它相当于一个外部模块,通过第三方程序的结合提供安全的网上交易支持。检查Apache服务器(1)n检查系统中是否安装了Apache服务器nrpm-
14、qa|grep httpd 检查Apache服务器(2)n检查是否启动了Apache服务器nps aux|grep httpd 检查Apache服务器(3)n 安装Apache服务器n预备工作 n下载源码包 httpd-2.2.6.tar.gz n解开软件源码包 n配置源树 ./configure命令 n生成 maken安装 make install n修改配置文件 httpd.confn运行测试 apachectl -k start Apache的版本与升级n新版本程序的发布声明n主版本升级 2.02.2n小版本升级 第5章 Web服务器的配置与应用5.1 Web服务基本概念5.2 Apac
15、he服务器5.3 Apache图形配置工具5.4 Apache的配置文件5.3 Apache图形配置工具n完成Apache简单的配置n“系统”|“管理”|“服务器设置”|“HTTP”启动图形配置管理工具nHTTP服务器图形配置工具包括:n主(Main)n虚拟主机(Virtual Hosts)n服务器(Server)n调整性能(Performance Tuning)服务器基本配置 n服务器名(Server Name)n网主电子邮件地址(Webmaster email address)n访问端口(port)服务器基本配置 n服务器名(Server Name)n网主电子邮件地址(Webmaster
16、email address)n访问端口(port)服务器名是一个完全符合域名命名规则的名字,应与主配置文件/etc/httpd.conf中的ServerName指令对应。是Web服务器的主机名,用户创建重定向url地址,若不指定服务器名,则Web服务器使用从系统获得的IP地址表示Web服务器。该名字不一定必须是服务器计算机的IP地址所对应的域名。服务器基本配置 n服务器名(Server Name)n管理员电子邮件地址(Webmaster email address)n访问端口(port)管理员电子邮件地址选项对应于httpd.conf配置文件中的ServerAdmin指令。如果在服务器的出错页
17、面上包含了改Email地址作为联系用电子邮件,则发现错误的用户可以向Web服务器的管理员发送电子邮件报告问题。默认地址为:rootlocalhost。服务器基本配置 n服务器名(Server Name)n管理员电子邮件地址(Webmaster email address)n访问端口(port)访问端口定义服务器接受访问请求的端口。该选项对应配置文件httpd.conf中的Listen指令。默认端口是80端口。默认设置与虚拟主机当用户访问Web服务器而没有指定网页文件名称时,服务器会按照目录页搜索列表中的项目一次搜索对应的文件,若找到则返回给用户。该列表与httpd.conf中的Director
18、yIndex对应。否则服务器会自动产生目录下文件列表返回响应用户的请求。默认设置与虚拟主机设置Apache服务器发生错误时将用户重定向到其他地址。如果用户访问的时候发生了某种错误,则服务器默认会显示一个简短的错误代码和信息。单击“编辑”,管理员可以再弹出的的对话框中修改这个默认设置。创建虚拟主机(1)nApache服务器可以创建多台虚拟主机n用户不同的请求由不同的虚拟机响应n用户感觉是访问不同的Web服务器n虚拟主机使得Web请求可以发送到不同的IP地址或者主机名,但是由相同的Apache进程处理创建虚拟主机(2)n虚拟主机名n文档根目录n网主电子邮件地址n主机信息n默认虚拟主机 n基于IP的
19、虚拟主机 n基于名称的虚拟主机 创建虚拟主机(3)输入虚拟主机名,配置工具用此名字来区分不同的虚拟主机。设置虚拟主机的根文档的位置,它对应httpd.conf配置文件中的虚拟主机指令DocumentRoot指令。网站管理员的电子邮件地址,可以显示在错误网页上,方便用户报告。1.默认虚拟主机:当需要某个IP地址响应用户的访问而其他虚拟主机没有设定该IP地址的时候。默认虚拟主机就响应该IP地址的访问请求,若没有默认虚拟主机,则使用主服务器设置。注意:只能设置一个默认虚拟主机。2、基于IP的虚拟主机:需要指定虚拟主机响应请求的IP地址和服务器主机名。可以指定多个IP地址,以空格隔开。若需要指定端口,
20、则使用“IP地址:端口”的格式。3、基于名称的虚拟主机:需要设置IP地址、主机名和别名。IP地址的设定与“基于IP的虚拟主机”相同。添加别名会在httpd.conf配置文件中的虚拟主机VirtualHost指令中增加ServerAlias指令。第5章 Web服务器的配置与应用5.1 Web服务基本概念5.2 Apache服务器5.3 Apache图形配置工具5.4 Apache的配置文件5.4 Apache的配置文件nApache服务器安装完毕后,几乎不需什么配置就已经可以正常运行了n为了满足不同的需要,包括安装问题的考虑,还需要细致地调整Apache服务器的配置Apache的目录和文件n目录
21、n配置文件n启动脚本httpd.conf的文件格式(1)n是Apache最重要的配置文件n一般位于/etc/httpd/conf目录下n修改配置后,需重启httpd服务才生效n文件中每行一条指令(directive)n大小写不敏感n以#开头的行是注释n两种方式进行参数的配置:n属性与取值域 n块方式 httpd.conf的文件格式(2)ServerAdmin rootlocalhostListen 80httpd.conf的文件格式(3)n条件块n n表示指令的处理需要根据指定模块是否存在为条件来进行,test为真时处理块 ntest为module表示当Apache中包含了名为module的模
22、块的时候处理块内指令ntest为!module表示名为module的模块不在Apache中的时候,块内指令被处理 httpd.conf的文件格式(3)n测试配置文件napachectl t n返回Syntax OK时表示配置文件语法正确 httpd服务的启动(1)n使用图形化管理服务的工具httpd服务的启动(2)n命令方式启动服务 service httpd start/stop/restart$service httpd start#启动启动httpd服务服务启动启动 httpd:确定确定$service httpd stop#停止停止httpd服务服务停止停止 httpd:确定确定$se
23、rvice httpd restart#重启动重启动httpd服务服务停止停止 httpd:确定确定启动启动 httpd:确定确定httpd.conf文件解析nhttpd.conf文件包括三个部分nWeb服务的全局环境(global environment),控制Apache进程整体操作的指令。n定义“主”服务器或者“默认”服务器的参数的指令。主服务器处理虚拟主机不响应的请求,也为所有的虚拟主机提供默认设置。n配置虚拟主机的指令。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsn
24、KeepAliveTimeoutnprefork MPM 提供服务器的版本和操作系统信息,不想提供可以改为 minor.Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeoutnprefork MPM 指出服务器保存其配置、出错和日志文件等的根目录。路径的结尾不要添加斜线。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAlive
25、Timeoutnprefork MPM 记录服务器启动进程号的文件。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeoutnprefork MPM Web站点的响应时间,默认是120秒。若超时时间仍然没有传输任何数据,则Apache服务器将断开与客户端的连接。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeou
26、tnprefork MPM 一次tcp连接是否持续有效,推荐打开.Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeoutnprefork MPM 如果KeepAlive是on的话,此配置才生效,最大连接请求数,可调大些.设为0表示无限制接入。默认值为100。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeout
27、nprefork MPM 连续两次连接的间隔时间,若超出设置值则被认为连接中断。默认值为15秒。Web服务的全局环境 nServerTokensnServerRootnPidFilenTimeoutnKeepAlivenMaxKeepAliveRequestsnKeepAliveTimeoutnprefork MPM Apache的多路处理模块(MPM)就是用于选择处理网络端口绑定、接受请求并指派子进程处理来自客户端的请求。它不是指令,是一个IFMODULE块。当Apache包含prefork.c模块时,处理如下指令:nStartServers:启动时服务器启动的进程数 nMinSpareSe
28、rvers:保有的空闲进程的最小数目nServerLimit:服务器生命周期内MaxClients取值的最大值。nMaxSpareServers:保有的备用进程的最大数目nMaxClients:服务器允许启动的最大进程数 nMaxRequestsPerChild:一个服务进程允许的最大请求数 nworker MPMnListennLoadModulenIncludenExtendedStatusnUser/GroupWorker MPM 是一个IFMODULE块。当Apache包含prefork.c模块时,处理如下指令:nStartServers:启动服务器进程的初始数量nMaxClients
29、:同时刻客户连接的最大数量nMinSpareThreads:空闲工作线程的最小值nMaxSpareThreads:空闲工作线程的最大值nThreadsPerChild:每个服务器进程的固定工作线程数。nMaxRequestsPerChild:一个服务器进程可以服务的最大请求数nworker MPMnListennLoadModulenIncludenExtendedStatusnUser/Group允许绑定Apache服务到指定的IP地址和端口上,以取代默认值。若没有Listen指令,则Apache不能启动。如果仅指定端口,则Apache在服务器的所有IP地址上监听该端口;若同时指定了IP地址
30、,则服务器在指定的IP地址上的指定端口监听。可以使用多条Listen指令,以指定一系列监听地址和端口。设定Apache绑定到指定的IP地址可以避免Apache监听0.0.0.0。对于IPV6,必须将地址放在方括号内。nworker MPMnListennLoadModulenIncludenExtendedStatusnUser/Group该指令链接目标文件或库,并将模块加入到活动模块的列表中。为了使用生成为DSO(动态共享对象)的模块,必须使用LoadModule指令加载该模块,使模块内的指令在使用之前就已被加载进来。语法:LoadModule 模块名字 模块文件的位置。例如:LoadMod
31、ule status_module modules/mod_status.sonworker MPMnListennLoadModulenIncludenExtendedStatusnUser/Group该指令将其他配置文件加载进来。如果Include后的参数不是指定一个文件或利用通配符指代的若干文件,而是指定一个目录,Apache会读取该目录及其子目录下的所有文件。建议不要在Include指令中包含目录,因为目录中若有临时文件将导致httpd进程错误。nworker MPMnListennLoadModulenIncludenExtendedStatusnUser/Group当调用“serv
32、er-status”时,控制Apache是产生“完全”状态信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。默认为off nworker MPMnListennLoadModulenIncludenExtendedStatusnUser/Group运行httpd的用户和组;在系统初始化时必须以root身份运行httpd,然后再切换过去。其参数可以是用户名/组名,也可以是用户ID/组ID。建议创建一个专门的用户和组运行Apache。主服务器配置nServerAdmin nServerNamenUseCanonicalName nDocument
33、Root该区建立被“主”服务器使用的各项参数。主服务器处理虚拟主机不处理的请求。也为虚拟主机提供默认设置。在该部分出现的指令在虚拟机设置中也可能出现,如果在虚拟主机设置中有相同的指令设置,则会覆盖此处的设置。主服务器配置nServerAdmin nServerNamenUseCanonicalName nDocumentRoot设置服务器管理员的邮件地址,当发生问题时Apache将向管理员发出邮件。作为一个出错文档,这个地址显示在server-generated页上。例如:主服务器配置nServerAdmin nServerNamenUseCanonicalName nDocumentRoot
34、ServerName指定Apache用于识别自身的名字和端口号。通常这个值是自动指定的,推荐显式的指定它以防止启动时出错。如果服务器没有注册DNS名,在这里键入它的IP地址。ServerName :80 主服务器配置nServerAdmin nServerNamenUseCanonicalName nDocumentRoot UseCanonicalName:决定Apache如何构造自引用的URL地址(URLS)和 CGI程序使用的两个变量SERVER_NAME 和 SERVER_PORT 的指令。三种取值:On、Off或DNS域名,默认为Off。当设置为“Off”时,Apache会使用用户端
35、提供的主机名和端口号。当设置为“On”,Apache会使用ServerName指令的值。DNS域名是为了兼容。主服务器配置nServerAdmin nServerNamenUseCanonicalName nDocumentRootWeb服务器文档的根目录。默认情况下,所有的请求从这个目录进行应答。但是可以使用符号链接和别名来指向到其他的位置。例如:DocumentRoot /home/redhat/public_html 假设访问请求为:http:/ /image /ftp/pub/image n注意:只有当路径完全匹配的时候才会正确映射,否则就会发生错误而无法找到请求的文档。虚拟目录(2)
36、nAlias指令nAlias /image /ftp/pub/image nAlias /icons/usr/local/apache/icons/n若别名指令设定的目录在DocumentRoot以外的其他目录,需要显式地允许对目标目录的访问操作。Alias/image/ftp/pub/image Order allow,deny Allow from all如果在别名中使用了结尾“/”,则服务器要求在请求的url地址中也必须以斜线“/”结尾。目录访问控制(1)n格式directivesndirectory-path是要配置的目录,可以使用通配符“*”和“?”和正则表达式指定目录。目录访问控制
37、(2)Options Indexes FollowSymLinksOptions Indexes FollowSymLinks/home/users/html、/home/pub/html、/home/var/html等都是受影响等都是受影响的目录的目录/var/abc、/var/www/abc、/var/testabc、/www/ttabc/var/abc等都等都是符合该是符合该正则表达式正则表达式模式的目录模式的目录 目录访问控制(3)n最短匹配优先的次序n多个Directory块与目录或者其父目录匹配n按照最短匹配优先的次序应用指令 n目录下的.htaccess文件中的配置指令随其目录执
38、行。目录访问控制(4)AllowOverride NoneAllowOverride 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)n目录指令块中使用的五个指令nOptionsnAllowOverridenDenynAllownOr
39、der 目录访问控制(6)nOptions:设定目录中可以执行的功能。nNone不允许做任何操作,即不允许访问此目录。是互斥性设置。nAll默认设置。除了MultiViews的功能外,用户可做所有的操作。是互斥性设置。n其他取值参见表5-2。目录访问控制(7)nAllowOverride n该指令设置在.htaccess文件中允许使用的指令类型。当服务器发现目录下有.htaccess文件的时候,需要确定文件中声明的哪些指令可以覆盖前面的配置指令。.htaccess文件的文件名由AccessFileName指令设置。nAuthConfig nFileInfo nIndexes nLimit nO
40、ptions=Option,目录访问控制(8)nAllow:设置允许访问服务器的主机,控制是基于主机名、IP地址、IP地址范围或者环境变量中获得的客户端请求的其他特征实现的。n格式:Allow from all|host|env=env_variablehost|env=env-varialbe 参数有三种形式:1.Allow from all 表示任何主机都可以访问服务器。2.Allow from host 限制可以访问服务器的主机 3.Allow from env=env-variable 基于环境变量进行访问服务器的许可控制,当环境变量存在客户端的请求才可以被接受。可以根据客户端请求的特
41、征来设置环境变量。例如:SetEnvIf User-Agent knock/2.0 let_me_inOrder Deny,AllowDeny from allAllow from env=let_me_in表示:当客户端浏览器的user-agent字符串是以knock/2.0开头的时候才能访问服务器,其他的则被拒绝。Host部分的几种格式:1、部分域名。主机名字如果与设置的域名匹配或者以之结尾,则此主机被允许访问服务器。例如:Allow from 如果主机是,则符合此设置,可以访问服务器。3、部分IP地址。指定IP地址的前1到3个字节,用于限定IP子网中所有主机的访问。例如:Allow fr
42、om 192.168.0 172.166、IPV6地址和子网。例如:Allow from 2001:db9:abcd:cced目录访问控制(9)nDeny:该指令设置被拒绝访问服务器的主机。可以:基于主机名、IP地址或者环境变量来限制对服务器的访问。n格式:Deny from all|host|env=env_variablehost|env=env-varialbe n参数与Allow指令的参数相同。目录访问控制(10)nOrder:该指令设置Allow与Deny的优先次序。Allow和Deny将匹配空间划分为三个:与Allow匹配的、与Deny匹配的、其他。服务器根据访问请求访问的客户端与
43、三个匹配子空间的匹配情况,确定是否接受该访问请求。nAllow,Deny先执行允许访问列表再执行拒绝访问列表。默认情况下降拒绝所有没有明确被允许的客户。nDeny,Allow先执行拒绝访问列表在执行允许访问列表,默认情况下将允许所有没有明确被拒绝的客户。例1:要控制只允许来自域的主机访问服务器,其他的主机的访问请求都拒绝。Order Deny,AllowDeny from allAllow from 例2:控制只允许来自域的主机的访问请求,但是子域中的主机除外。Order Allow,DenyAllow from 认证nApache服务器利用以下认证参数,可实现对指定目录的认证控制。nAuth
44、Name 认证域名称:指定用户认证域的名称。nAuthType Basic|Digest:设定用户认证的方式,一般使用Basic。nAuthUserFile 文件名:指定认证用户文件名及其保存路径。nAuthGroupFile 文件名:指定认证组群文件名及其保存路径。nRequire 参数:指定哪些认证用户或认证组群有权访问指定的目录。nRequire参数有以下三种格式:nRequire 用户名列表:授权给指定的用户。nRequire 组群名列表:授权给指定的组群。nRequire valid-user:授权给认证用户文件中所有的用户 认证用户文件n利用htpasswd命令可创建认证用户文件,
45、并设置认证用户。认证用户与Linux系统的用户没有对应关系。n格式:htpasswd 选项 认证用户文件名 用户名n功能:设置指定的认证用户及其认证口令。n选项:-c创建指定的认证用户文件,只在设置第一个认证用户时使用。-D删除指定的认证用户。管理员可以将所有的认证用户划归成多个认证组群。Linux没有提供创建认证组群文件的命令,管理员可以利用任何文本编辑器创建和编辑认证组群文件。认证组群文件中的每一行表示一个组群,其基本格式为:组名:用户名列表例1:将tom设置为认证用户,认证用户文件为/var/www/userpass,尚未创建。htpasswd c/var/www/userpass to
46、m例2:将jack设置为认证用户,认证用户文件为/var/www/userpass,文件已存在。htpasswd/var/www/userpass jack例3:修改认证用户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.在指定目
47、录下创建.htaccess文件,访问控制和认证的相关的参数均保存在.htaccess文件。3.注意:当使用.htaccess文件可以在不重新启动服务器的情况下改变服务器的配置,但是由于Apache服务器要查找.htaccess文件,将会降低服务器的运行性能。httpd.conf文件中AllowOverride参数可决定.htaccess文件是否有效,以及.htaccess文件中可以使用的配置参数。Web用户验证(1)n可以验证单个用户或者用户组n为单个用户分配密码n也可以为用户组分配密码n建立匿名访问Web用户验证(2)n验证单个用户n编辑主配置文件/etc/httpd/conf/httpd.
48、conf n建立口令文件并为用户设置口令 n重新启动httpd服务验证单个用户例1:直接编辑httpd.conf文件,设置/var/www/html/test目录中所有网页文件只允许认证用户访问。前提:防火墙允许WWW服务通过。(1)在/var/www/html目录下新建test目录,并创建index.html文件。(2)编辑httpd.conf文件,添加如下内容。AllowOverride None /不使用.htaccess文件AuthName“share web”AuthType BasicAuthUserFile/var/www/userpassrequire user tomrequ
49、ire user jack(3)根据httpd.conf的设置内容,创建认证用户文件/var/www/userpass,并将tom,jack设置为认证用户。(4)重新启动apache服务。验证组例2:直接编辑httpd.conf文件,设置/var/www/html/test目录中所有网页文件只允许认证用户访问。前提:防火墙允许WWW服务通过。(1)在/var/www/html目录下新建test目录,并创建index.html文件。(2)编辑/var/www/grouppass文件,增加用户和组的关系:tom:tom jack(3)编辑httpd.conf文件,添加如下内容。AllowOverr
50、ide None /不使用.htaccess文件AuthName“share web”AuthType BasicAuthUserFile/var/www/userpassAuthGroupFile/var/www/grouppassrequire group tom(4)根据httpd.conf的设置内容,创建认证用户文件/var/www/userpass,并将tom,jack设置为认证用户。(5)重新启动apache服务。使用.htaccess文件验证例3:创建.htaccess文件,设置/var/www/html/test目录中的所有网页文件只允许IP地址为172.16.1.*网段的计算