内容简介:基于用户的访问控制就是对网页目录进行认证配置,用户输入用户名密码之后才能访问网页httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式Digest:使用摘要认证需要在编译httpd之前添加"--enable-auth-digest"选项,但并不是所有的浏览器都支持摘要认证;
简介
基于用户的访问控制就是对网页目录进行认证配置,用户输入用户名密码之后才能访问网页
认证方式
httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式
Digest:使用摘要认证需要在编译httpd之前添加"--enable-auth-digest"选项,但并不是所有的浏览器都支持摘要认证;
Basic:基本认证是htpd服务的基本功能,不需要预先配置特别的选项(安全性没有摘要认证高,支持所有的浏览器)
认证与授权
基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程。认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程,特定目录区域是Apache指定的目录区域指定的网页放置的父目录
实验环境
- 系统环境:centos6.5
- 服务器IP地址:192.168.100.103
- 客户端IP地址:192.168.100.99
- yum挂载目录:/mnt/sr0
- 相关源码包下载地址: 百度云下载 密码:pko3
搭建步骤
一、准备工作
1、关闭防火墙及selinux
[root@Init5 ~]# chkconfig iptables off #随开机关闭iptables
[root@Init5 ~]# vim /etc/sysconfig/selinux
二、搭建httpd、DNS服务器
如果没有搭建以上两个服务的朋友,请查看我的其他帖子有详细介绍
http://blog.51cto.com/11905606/2156944三、基于根目录验证用户访问授权
1、修改主配置文件
[root@Init5 ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak #修改之前先备份
[root@Init5 ~]# vim /etc/httpd/conf/httpd.conf
#查看、添加、修改以下参数
<Directory "/usr/local/httpd/htdocs"> #站点目录
Options Indexes FollowSymLinks #软链接
AllowOverride None #改成其他值,会产生一个.htpasswod的隐藏文件,放在网站发布的目录下,可以写一些网站的属性配置,如果与全局配置冲突了,以.htpasswod为准,最好不要动
order allow,deny
Allow from all #默认允许所有人进行访问
AuthName "Auth Direcrory" #指定认证领域名称,登录的时候会通过登录窗口显示
AuthType Basic #指定认证方式
AuthUserFile /usr/local/httpd/conf/.awspwd #指定授权用户数据文件
require valid-user #授权给合法用户,合法用户在.awspwd文件中
</Directory>
2、创建授权用户
[root@Init5 ~]# cd /usr/local/httpd/conf/
[root@Init5 conf]# htpasswd -c /usr/local/httpd/conf/.awspwd tom
htpasswd在最开始编译安装的时候已经安装好htpasswd,用来创建授权用户数据文件,并维护其中的用户账号
-c 指定用户数据文件的位置,添加“-c”选项表示新建立此文件,省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码
[root@Init5 conf]# cat /usr/local/httpd/conf/.awspwd #查看用户数据文件
[root@Init5 ~]# id tom
3、重启服务
[root@Init5 ~]# /etc/init.d/httpd restart
4、测试访问
四、基于虚拟目录验证用户访问授权
1、修改主配置文件
[root@Init5 ~]# mv /etc/httpd/conf/httpd.conf.bak /etc/httpd/conf/httpd.conf #还原之前备份的配置文件
Include conf/extra/httpd-vhosts.conf #打开此行注释,涵盖了虚拟主机的配置,并且可以看出在conf目录下有虚拟主机配置文件
2、修改虚拟主机配置文件
[root@Init5 ~]# vim /etc/httpd/conf/extra/httpd-vhosts.conf
设置目录别名:
Alias /pub "/var/www/html"
站点1设置:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
Allow from all
AuthName "Auth Direcrory"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>
站点2设置:
<VirtualHost 192.168.100.103:80>
ServerAdmin hello@qq.com
DocumentRoot "/var/www/html"
ServerName www.bt.com
ServerAlias www.bt.com
ErrorLog "logs/www.bt.com-error_log"
CustomLog "logs/www.bt.com-access_log" common
</VirtualHost>
3、创建网页根目录及网页
[root@Init5 ~]# mkdir -p /var/www/html
[root@Init5 ~]# echo "<h1>Hello World</h1>" > /var/www/html/index.html
4、重启服务
[root@Init5 ~]# /etc/init.d/httpd restart
5、再次访问
以上所述就是小编给大家介绍的《Apach实现创建虚拟目录以及用户访问控制(内附源码包)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Spring容器创建源码解析
- [源码分析] kubelet源码分析(三)之 Pod的创建
- LayoutInflater创建View源码阅读
- Spring源码系列:BeanFactory的创建
- Sphinx源码学习笔记(一):索引创建
- Netty NioEventLoop 创建过程源码分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。