Apach实现创建虚拟目录以及用户访问控制(内附源码包)

简介

基于用户的访问控制就是对网页目录进行认证配置,用户输入用户名密码之后才能访问网页

认证方式

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

[[email protected] ~]# chkconfig iptables off #随开机关闭iptables
[[email protected] ~]# vim /etc/sysconfig/selinux

二、搭建httpd、DNS服务器

如果没有搭建以上两个服务的朋友,请查看我的其他帖子有详细介绍
http://blog.51cto.com/11905606/2156944

三、基于根目录验证用户访问授权

1、修改主配置文件

[[email protected] ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak #修改之前先备份
[[email protected] ~]# 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、创建授权用户

[[email protected] ~]# cd /usr/local/httpd/conf/
[[email protected] conf]# htpasswd -c /usr/local/httpd/conf/.awspwd tom

htpasswd在最开始编译安装的时候已经安装好htpasswd,用来创建授权用户数据文件,并维护其中的用户账号
-c 指定用户数据文件的位置,添加“-c”选项表示新建立此文件,省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码

[[email protected] conf]# cat /usr/local/httpd/conf/.awspwd #查看用户数据文件

[[email protected] ~]# id tom

3、重启服务

[[email protected] ~]# /etc/init.d/httpd restart

4、测试访问


四、基于虚拟目录验证用户访问授权

1、修改主配置文件

[[email protected] ~]# mv /etc/httpd/conf/httpd.conf.bak /etc/httpd/conf/httpd.conf #还原之前备份的配置文件

Include conf/extra/httpd-vhosts.conf #打开此行注释,涵盖了虚拟主机的配置,并且可以看出在conf目录下有虚拟主机配置文件

2、修改虚拟主机配置文件

[[email protected] ~]# 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 [email protected]
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、创建网页根目录及网页

[[email protected] ~]# mkdir -p /var/www/html
[[email protected] ~]# echo "<h1>Hello World</h1>" > /var/www/html/index.html

4、重启服务

[[email protected] ~]# /etc/init.d/httpd restart

5、再次访问

原文地址:http://blog.51cto.com/11905606/2158169

时间: 2024-08-24 19:51:28

Apach实现创建虚拟目录以及用户访问控制(内附源码包)的相关文章

Java中包含继承关系时对象的创建与销毁顺序详解(附源码)

前言 通过组合和继承方法来创建新类时,永远不必担心对象的清理问题,子对象通常都会留给垃圾回收器进行处理.如果确实遇到清理的问题,那么必须用心为新类创建dispose()方法(在这里我选用此名称,读者可以提出更好的).并且由于继承的缘故,如果我们有其他作为垃圾回收一部分的特殊清理动作,就必须在导出类中覆盖dispose()方法.当覆盖被继承类的dispose()方法时,务必记住调用基类版本dispose()方法:否则,基类的清理动作就不会发生.下例就证明了这一点: 示例源码 package com

Nginx提供网站服务应用包括(虚拟主机、用户访问控制、用户验证、nginx平滑升级、防盗链)的配置

Nginx   开源且跨平台的软件    俄罗斯人开发的   提供网站服务  和  代理服务 Nginx 提供网站服务应用环境? 1.虚拟主机2.用户访问控制3.用户验证4.防盗链 实验环境: 安装软件:nginx-0.855.tar.gz 操作系统:centos6.5 实验:(一) 实验目的:nginx源码包的安装以及基本的使用. 安装源码包要安装的工具:开发工具 和开发环境 1.安装nginx源码包 建立ngix软件夹用来存放nginx软件包 添加一个进程的所有者和所属组为www,www为n

VS 创建虚拟目录失败,映射到其他文件夹!

今天打开之前的一个项目,总是提示加载失败,并报 创建虚拟目录  失败,错误:文件名:redirection.config 的错误 找了半天,坑爹的是在Web.csproj文件中! 用txt打开,发现这个东东! <UseIIS>True</UseIIS> 使用IIS. 改成False看看! 嘿,可以了呀. 然后在打开项目,查看项目属性! 在web里面就可以看到 如果需要本地IIS,就建一个虚拟目录,或者一个网站,然后把完整url写如如上图内. 如果直接用VS开发服务器就不用管IIS了

jexus创建虚拟目录的方法

用MONO+Jexus来在Linux下跑asp.net,一直挺好的,但现在有一个问题,不知道怎么创建虚拟目录,翻了半天GG和官网也没找到相应的方法. 突然想起来,Linux下可以用软链接来创建指向一个目录的符号链接,于是觉得这个方法应该可行. 于是 ln /var/name /var/www/web/path 这样就在web目录创建了一个path的符号链接,指向/var/name目录,然后在浏览器中访问http://www.web.com/path OK,顺利搞定 最后又想到,jexus好像没有

asp.net 创建虚拟目录 iis创建虚拟目录

这几天本人接了个档案管理查询系统的小项目,踩过的坑. 其实功能都挺简单的,大致要求客户有很多pdf文档,为了方便管理,所有要开发一个相当于文件管理系统,本人正好有现成的文件管理系统,修改下就可以.其中客户要求pdf需要放到其他的盘符,不能和应用程序在一起,这个解决起来非常方便.系统上线了后,因为客户的pdf是分目录放的,如果上百个虚拟目录是手动创建的话,就有点繁琐.因此需要代码实现.记录如下: /// <summary> /// 创建虚拟目录 /// </summary> ///

用户、组管理,源码包安装

先讲解后试验,最后有截图文件 一.用户账户管理 1. 用户账户: 超级用户root(0) 程序用户(1~499) 普通用户(500~60000) 组账户: 基本组(私有组) 附加组(公共组) 2. /etc/passwd 保存用户账户的基本信息 # grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash 字段1:帐号名root 字段2:密码占位符x 字段3:UID 字段4:GID 字段5:用户全名 字段6:宿主目录 字段7:登录Shell  

Day13 目录结构&amp;自定义Yum仓库&amp;源码包编译安装(Service02)

一.linux一级目录 man hier可以查看所有一级目录的作用 1.1 /bin 普通用户使用的常用命令 1.2 /boot 系统引导必须的文件,包括内核.启动配置 1.3 /dev 键盘.硬盘.光驱等设备文件 1.4 /etc 系统配置文件和用户程序配置文件等配置文件 1.5 /home 普通用户的家目录 1.6 /lib /lib64 启动系统和程序所需要的库文件,lib表示32位.lib64表示64位 1.7 /mnt 临时挂载其他文件系统的挂载点 1.8 /opt 某些程序会安装在这

Java开源生鲜电商平台-用户表的设计(源码可下载)

Java开源生鲜电商平台-用户表的设计(源码可下载) 说明:由于该系统属于B2B平台,不设计到B2C的架构. 角色分析:买家与卖家. 由于买家与卖家所填写的资料都不一样,需要建立两站表进行维护,比如:buyer,seller. 这样进行数据库的解耦,任何一方的变动都互不影响,但是我想集中式管理,以及一些业务个性化要求,我就增加了一个users表.表结构如下: 账号唯一键,所以做了唯一键索引, 账号的准确性采用手机短信验证. 根据类型区分买家与卖家,登陆的时候,采用的就是users这种表进行维护

Apache虚拟目录、用户认证、基于端口/IP/域名的虚拟主机、SSL

环境配置: 配置DNS以便域名解析 安装Bind软件包. yum install -y bind 2. 修改Bind配置文件. vim /etc/named.conf listen-on port 53 { 192.168.200.101; }; allow-query { any; }; vim /etc/named.rfc1912.zones zone "a.com" IN { type master; file "a.com.localhost"; allow