Web网站实现用户认证访问,有效减少流量的访问,具体的实现步骤如下:
我们使用httpd作为测试对象,体现安装好httpd服务,并且可以在浏览器访问测试首页(可以关闭防火墙;如果不关闭防火墙,则需要开放80端口)
1、首先创建可以访问的测试首页
[root@localhost ~]# echo "Welcome to my Web!" > /var/www/html/index.html
2、修改Apache的配置文件/etc/httpd/conf/httpd.conf,对需要认证的资源所在的目录进行配置。具体配置如下
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf .......... <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride AuthConfig Order allow,deny Allow from all Require all granted </Directory> ........... //其中,Allowoverride authconfig一行表示允许对/var/www/html目录下的内容进行用户认证;没有的需要添加
3、在限制访问目录/var/www/html下创建文件.htaccess,其内容如下:
[root@localhost ~]# cd /var/www/html/ [root@localhost html]# touch .htaccess //一般设为隐藏文件;也可以设置普通文件 [root@localhost html]# vim .htaccess AuthName testWeb AuthType basic AuthUserFile /var/www/html/password.txt require user lisi
说明:.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指定的文件中的所有用户都可以访问)
4、利用Apache附带的程序htpasswd工具,生成包含用户名和密码的文本文件:
[root@localhost html]# pwd /var/www/html [root@localhost html]# htpasswd -bc password.txt lisi 123456 //密码文件的路径必须与AuthUserFile写的路径一致,文件名一样 Adding password for user lisi [root@localhost html]# ls index.html password.txt //第一次添加用户时password.txt文件不存在,需要用-c选项创建文件 htpasswd -b /var/www/html/members.txt zhangsan abcdef //-b选项:在该密码文件添加一个用户
5、再次访问