设置了别名之后,当我们通过url进行访问的时候,服务器会自动的将资源路径指向别名所指的位置。
例如 ==> /var/www/icons/
认证质询:WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码
认证:Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的
资源认证方式两种:
basic(明文)
digest(消息摘要认证,兼容性差)
安全域:需要用户认证后方能访问的路径;应该通过名称对其进行标识,以便于告知用户认证的原因
用户的账号和密码:
虚拟账号:仅用于访问某服务时用到的认证标识
存储:文本文件,SQL数据库,ldap目录存储,nis等
(一)基于basic认证配置示例1、定义安全域
新建一个 以.conf 结尾的配置文件放在 /etc/httpd/conf.d/ 目录下。
这个目录就是存放自定义配置文件的路径。/etc/httpd/ 就是我们前面提到的ServerRoot
2、 提供账号和密码存储(文本文件),使用专用命令完成此类文件的创建及用户管理
# /PATH/HTTPD_PASSWD_FILE 这个路径在前面的配置中已经指定 htpasswd [options] /PATH/HTTPD_PASSWD_FILE username -c:自动创建文件,仅应该在文件不存在时使用 -m:md5格式加密 -s: sha格式加密 -D:删除指定用户 (二)基于组的认证配置1、定义安全域
<Directory “/path"> AuthType Basic AuthName "String“ AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE" AuthGroupFile "/PATH/HTTPD_GROUP_FILE" Require group grpname1 grpname2 ... </Directory>2、 创建用户账号和组账号文件,组文件:每一行定义一个组
基于组的认证配置示例
<Directory "/www/htdocs/admin"> Options None AllowOverride None AuthType Basic AuthName "Administator private" AuthUserFile "/etc/httpd/conf.d/.htpasswd" AuthGroupFile "/etc/httpd/conf.d/.htgroup" Require group webadmins </Directory> vim /etc/httpd/conf.d/.htgroup webadmins:hehe haha 14、虚拟主机 (一) 基于ip:为每个虚拟主机准备至少一个ip地址基于IP的控制
<VirtualHost 172.16.100.6:80> ServerName DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.7:80> ServerName DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost 172.16.100.8:80> ServerName DocumentRoot "/www/c.org/htdocs" </VirtualHost> (二) 基于port:为每个虚拟主机使用至少一个独立的port基于端口的配置,可以针对一个主机监听不同的端口,不过一定要注意的就是,在配置文件之前一定要加上 listen 端口号
# 这两个listen如果不加上的话,基于端口的配置将不起作用,因为没有监听这两个端口啊。 listen 808 listen 8080 <VirtualHost 172.16.100.6:80> ServerName DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:808> ServerName DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:8080> ServerName DocumentRoot "/www/c.org/htdocs" </VirtualHost> (三) 基于FQDN:为每个虚拟主机使用至少一个FQDN基于域名的虚拟主机。这里非常重要的一点就是,如果要使用这种方式,就必须要将NameVirtualHost *:80 加上。入股不加的话,是没有什么效果的。
# 这句话一定要加上NameVirtualHost *:80 <VirtualHost *:80> ServerName DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost *:80> ServerName DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost *:80> ServerName DocumentRoot "/www/c.org/htdocs" </VirtualHost>总结一下虚拟主机的配置方法
虚拟主机的配置方法结构如下所示,建议将配置存放在独立的配置文件中
<VirtualHost IP:PORT> ServerName FQDN DocumentRoot “/path" </VirtualHost>