使用Apache配置需要用户名和密码认证才能访问的网站
Apache是目前流行的Web服务器,可运行在Linux、Unix、Windows等操作系统下,它可以很好地解决“用户名+密码”的认证问题。Apache用户认证所需要的用户名和密码有两种不同的存贮方式:一种是文本文件;另一种是Oracle、MySQL等数据库。下面以Linux的Apache为例,介绍如何实现用户认证功能。1.实验环境centos7.4配置好yum源:yum -y install h
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
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
重启服务进行访问测试:
这种方法对用户的认证比较省事,维护工作也简单。但是在用户数量有数万人,甚至数十万人时,会在查找用户上花掉一定时间,从而降低服务器的效率,这种情况应采用数据库方式进行用户验证。
更多推荐
所有评论(0)