四十一、Apache用户认证、域名跳转、Apache访问日志
一、Apache用户认证功能是用户在访问网站时,需要输入用户名和密码才能进入网站。一些重要站点或网站后台通常加用户认证,目的是保证安全。
# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
//指定认证的目录
AllowOverride AuthConfig //打开认证的开关
AuthName "111.com user auth" //自定义认证的名字,作用不大
AuthType Basic //认证的类型,一般为Basic
AuthUserFile /data/.htpasswd //指定密码文件所在位置
require valid-user //指定需要认证的用户为全部可用用户
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
httpd配置文件配置完成,创建密码文件:
# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd MRX
New password:
Re-type new password:
Adding password for user MRX
htpasswd命令为创建用户的工具,-c创建(create),-m指定密码加密方式为MD5,再加上用户名;
/data/.htpasswd为密码文件,MRX为要创建的用户,第一次执行该命令需要加-c;
第二次再创建新的用户时,就不用加-c了,否则/data/.htpasswd文件会被重置,之前的用户被清空。
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x 127.0.0.1:80 111.com
401 Unauthorized
Unauthorized
This server could not verify that you
are authorized to access the document
requested.Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.
//401状态码,表示访问的内容需要做用户验证,验证不对就401,对就200。
可以在浏览器访问这个111.com,前提是需要在Windows的hosts文件里加上111.com。
# curl -x 127.0.0.1:80 -uMRX:12345 111.com
111.com# //访问成功,状态码200。
-u:指定用户名和密码
上面的操作是对整个站点做的认证,其实也可以针对某个目录或者文件进行认证,比如对www.111.com/admin/目录进行认证,只需要修改一个地方,把;如果是文件,则需要这样改:
#//注释掉
AllowOverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
# //注释掉
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful
# vim /data/wwwroot/111.com/123.php
页:
[1]