使用Apache配置需要用户名和密码认证才能访问的网站

Apache是目前流行的Web服务器,可运行在Linux、Unix、Windows等操作系统下,它可以很好地解决“用户名+密码”的认证问题。Apache用户认证所需要的用户名和密码有两种不同的存贮方式:一种是文本文件;另一种是Oracle、MySQL等数据库。下面以Linux的Apache为例,介绍如何实现用户认证功能。

1.实验环境centos7.4配置好yum源:

yum -y install httpd  #利用yum一键安装httpd

修改Apache的配置文件/etc/httpd/conf/httpd.conf,对需要认证的资源所在的目录进行配置。具体配置如下:

vim /etc/httpd/conf/httpd.conf

  <Directory "/var/www/html">
  Options Indexes FollowSymLinks
  Allowoverride authconfig
  Order allow,deny
  Allow from all
  </Directory>
其中,Allowoverride authconfig一行表示允许对/var/www/html目录下的内容进行用户认证

2.在限制访问目录/var/www/html下创建文件.htaccess,其内容如下:

  vim /var/www/html/.htaccess   内容如下:

  AuthName "提示信息"
  AuthType basic
  AuthUserFile  /var/www/html/members.txt

  require valid-user

  

  说明:.htaccess文件中常用的配置选项有以下几个:
  1) AuthName:定义提示信息,用户访问时提示信息会出现在认证的对话框中
  2) AuthType:定义认证类型,在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5
  3) AuthUserFile:定义包含用户名和密码的文本文件,每行一对
  4) AuthGroupFile:定义包含用户组和组成员的文本文件。组成员之间用空格分开,如:group1:user1 user2
  5) require命令:定义哪些用户或组才能被授权访问。如:
  require user user1 user2 (只有用户user1和user2可以访问)
  requires groups group1 (只有group1中的成员可以访问)
  require valid-user (在AuthUserFile指定的文件中的所有用户都可以访问)
 3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/var/www/html/members.txt

  htpasswd -bc /var/www/html/members.txt damao 123456  #第一次添加用户时member.txt文件不存在,需要用-c选项创建文件

  htpasswd -b /var/www/html/members.txt wyy abcdef

  

  重启服务进行访问测试:

  

  这种方法对用户的认证比较省事,维护工作也简单。但是在用户数量有数万人,甚至数十万人时,会在查找用户上花掉一定时间,从而降低服务器的效率,这种情况应采用数据库方式进行用户验证。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值