2018-3-2 10周3次课 Apache用户认证域名跳转Apache访问日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018-3-2 10周3次课 Apache用户认证域名跳转Apache访问日志相关的知识,希望对你有一定的参考价值。

11.18 Apache用户认证


编辑 /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,把第二个虚拟主机编辑成如下内容

技术分享图片


·参数说明:

<Directory /data/wwwroot/www.111.com> //指定认证的目录

    AllowOverride AuthConfig //这个相当于打开认证的开关,无此行相当于未开启

    AuthName "111.com user auth" //自定义认证的名字,作用不大

    AuthType Basic //认证的类型,一般为Basic,其他类型不怎么用

    AuthUserFile /data/.htpasswd  //指定密码文件所在位置

    require valid-user //指定需要认证的用户为全部可用用户



·添加用户:

[[email protected] ~]# /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd user1

    用htpasswd来创建用户名和密码

    -c    创建新文件

    -m    MD5加密模式

    /data/.htpasswd 密码位置

技术分享图片

技术分享图片

    在hosts里定义111.com,使其可以跳转到本机

技术分享图片

    这样在输入111.com时,会提示需要进行身份验证

技术分享图片

    输入之前添加的新的用户名和密码,可以跳转

技术分享图片

    ·用curl去输入用户名密码:

    curl -x127.0.0.1:80 -u用户名:密码 地址 -I

[[email protected] ~]# curl -x127.0.0.1:80 -uuser1:123456 111.com -I

技术分享图片


·可以针对单个文件进行认证:

网站有各种敏感信息,那么可能对后台访问的进行二次认证,那么后台访问的地址,比如123.php,那么可以针对123.php做一个认证

更改vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,指定匹配文件为123.php,一定不要忘记结尾处的</FilesMatch>

技术分享图片

增加123.php

[[email protected] ~]# vim /data/wwwroot/111.com/123.php

添加任意内容,不要忘记 “ ”

技术分享图片

那么此时111.com不需要用户名和密码验证

而111.com/123.php则无法联通,因为配置文件对123.php进行了限制<FilesMatch 123.php>

因此111.com/123.php则需要用户名密码

技术分享图片






11.19/11.20 域名跳转


编辑/usr/local/apache2.4/conf/extra/httpd-vhosts.conf,注释掉之前编辑的配置,增加新配置

技术分享图片


·参数说明:

<IfModule mod_rewrite.c> //需要mod_rewrite模块支持

RewriteEngine on  //打开rewrite功能

RewriteCond %{HTTP_HOST} !^111.com$  //定义rewrite的条件,主机名(域名)不是111.com的话则满足条件

RewriteRule ^/(.*)$ 111.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行($1指第一个小括号的内容;301是永久重定向;L 表示只跳转一次)

</IfModule>



·查看是否加载了rewrite模块

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite

    没有加载的话,需要打开rewrite模块,编译apache时选择了most,所以一定存在的

[[email protected] ~]# vi /usr/local/apache2.4/conf/httpd.conf

技术分享图片

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
rewrite_module (shared)

技术分享图片

可以看出,输入www.example.com已经可以成功跳转到111.com



·常见错误代码:

200 用户名密码验证正确

301 永久跳转

302 临时跳转

401 用户名密码验证不正确

403 granted改为denied(/usr/local/apache2.4/conf/httpd.conf中)

404 页面不存在






11.21 Apache访问日志


·访问日志会记录用户的每一个请求

技术分享图片

[[email protected] ~]# cat /usr/local/apache2.4/logs/
111.com-access_log  abc.com-access_log  access_log          httpd.pid
111.com-error_log   abc.com-error_log   error_log
[[email protected] ~]# cat /usr/local/apache2.4/logs/111.com-access_log

技术分享图片技术分享图片

(GET是不加 -I 的时候)


·定义格式:

[[email protected] ~]# vim /usr/local/apache2.4/conf/httpd.conf 中搜索 LogFormat

技术分享图片

Referer,浏览器上一次所访问的网址,该访问页面的日志的referer就是前一个浏览的网页地址

User-Agent,用户代理,通过浏览器,通过curl去访问,去获得网站内容,浏览器就是用户代理


·在虚拟主机配置文件中,更改格式类型,common改为combined

[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

技术分享图片

[[email protected] ~]# /usr/local/apache2.4/bin/apachectl -t
[[email protected] ~]# /usr/local/apache2.4/bin/apachectl graceful
[[email protected] ~]# curl -x127.0.0.1:80 111.com/123.php -I
HTTP/1.1 200 OK
Date: Fri, 02 Mar 2018 17:08:20 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
[[email protected] ~]# cat /usr/local/apache2.4/logs/111.com-access_log

技术分享图片

(格式已经发生了变化,可以清楚看到Referer和User-Agent)



如有错误,欢迎指正。



以上是关于2018-3-2 10周3次课 Apache用户认证域名跳转Apache访问日志的主要内容,如果未能解决你的问题,请参考以下文章

2018-3-2 10周3次课

2018.3.1 10周2次课

2018-3-1 10周2次课 Apache和PHP结合Apache默认虚拟主机

2018-3-1 10周2次课

2018-3-5 10周4次课

2018.3.5 10周4次课