码迷,mamicode.com
首页 > 系统相关 > 详细

25期Linux20180529 Apche 认证 访问日志 域名跳转

时间:2018-06-08 16:42:18      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:apache日志跳转 认证

5月29日任务

11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志


11.18 Apache用户认证

所谓用户认证就是进入80端口对应的页面的时候,也就是通过apache的时候,设置了用户密码也就是安全认证。虽然一般不会用到,

但是在管理员账号登录页面也许会多加这么一层安全认证。


技术分享图片


打开虚拟主机配置文件。 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 。因为第一个是默认虚拟主机,所以可以对第二个配置进行修改。

技术分享图片

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

        AllowOverride AuthConfig #这个相当于打开认证的开关 

        AuthName "hqigroup user auth" #自定义认证的名字,作用不大

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

        require valid-user #指定密码文件所在位置

    </Directory>


以上就定义了需要认证的配置,其中有一个是指定密码文件的所在位置,这就要求了还是需要一个地方来放密码文件,包括用户名和密码。

Linux有一个命令来生成密码,那就是htpasswd 


/usr/local/apache2/bin/htpasswd -c -m /data/.htpasswd bill 

这样就创建一个md5加密的密码文件位置是/data/.htpasswd 用户名是bill 密码自己输入

技术分享图片

可以看到用户和密码(加密后的)

技术分享图片

当给第二个以及以后增加用户的时候,因为这个文件已经存在了,所以就不需要加-c这个参数了,因为不需要再创建文件了。

技术分享图片


然后重新加载以下, 做测试。

/usr/local/apache2/bin/apachectl -t

技术分享图片

出错了。找错喽,37行。

原来不能在后面加#注释,注释都删除以后就没有了。

技术分享图片

/usr/local/apache2/bin/apachectl graceful


然后可以curl进行测试,应该是会出现402状态码,但是我出现的是200,也就是可以正常访问的状态码这样就不对了。

curl -x127.0.0.1:80 www.hqigroup.com.au -I

找错:

因为directory和root目录应该是同一个。

技术分享图片

这个时候使用curl -x127.0.0.1:80 www.hqigroup.com.au -I

技术分享图片

技术分享图片

这样就可以了,匹配在虚拟主机里配置的用户和密码。


针对特定目录

注意用的不是directory而是filesmatch

其实就是在某个站点下的某一个目录进行认证。

<FilesMatch 文件名>

技术分享图片

技术分享图片

然后看下面的当直接访问这个域名的时候已经不会是401了,而访问下面的123.php的时候成了401.

技术分享图片


技术分享图片

也可以直接curl 用户名 密码来访问内容

curl -x127.0.0.1:80 -u用户名:密码 www.hqigroup.com.au/123.php 

技术分享图片



11.19/20 域名跳转

技术分享图片

背景介绍:

域名跳转的需求,比如有些网站内容不再继续了,设置一下跳转到新的站点。

SEO搜索引擎在这里起到一定的作用。百度的蜘蛛来到服务器抓走了页面放到数据库,用户搜索的时候会去比对,找到相关的页面出来。

这就牵扯到另一个关于搜索排名的问题了。权重越高,排名越靠前。而判断网站就是靠看他的域名。如果一个网站有俩域名的话会被搜索引擎认为其中一个是假的,所以最好只有一个服务器,另一个域名跳转。

301 永久跳转,一般这么使用。

302 临时重定向,对于seo来说不友好。不降低之前域名的权重,也就不增加之后的域名权重。

还是要编辑 虚拟主机文件

技术分享图片

首先要用到一个魔窟mod_rewrite。需要这个模块支持,打开,并定义rewrite的条件和规则。

技术分享图片

<IfModule mod_rewrite.c> mod_rewrite模块支持

        RewriteEngine on        打开rewrite功能

        RewriteCond %{HTTP_HOST} !^www.hqigroup.com.au$  定义rewrite的条件,主机名(域名)不是www.hqigroup.com.au满足条件,正则,!表示的是取反,^开始  $结束

        RewriteRule ^/(.*)$ http://www.hqigroup.com.au/$1 [R=301,L]  定义规则,当满足上面条件是,规则执行

    </IfModule>


保存完文件之后,需要测试是否有语法错误,重新加载,检查是否这个模块打开,如果没打开要到apache的配置文件中去打开。

技术分享图片

技术分享图片

然后再检查,就发现已经加载了。

技术分享图片

然后检查,加载后可以测试了。

技术分享图片

技术分享图片


再看如果url/xxx 的实验,也实现了跳转的新域名后面加之前的xxx

技术分享图片


也会有403的代码,这种就是将apache的配置文件里的 all granted 改成 denied  403禁止。


以上就是域名的跳转/重定向



Apache的访问日志


技术分享图片


访问日志就是去访问/请求的历史记录。

技术分享图片

logs的目录是 /usr/local/apache/logs 

技术分享图片

访问日志里可以看到如下

技术分享图片

但是这种日志格式太简单,不能自定义,如果想自定义的话就需要到 /usr/local/apache2/conf/httpd.conf去定义

vim进入到配置文件后找到logformat 

技术分享图片

系统默认使用的是common 所以上面看到的log字段就是这个格式来的。

技术分享图片

特别指出一下 referer是来源页面 user-agent是代理,浏览器之类


所以这里接下里是要更改虚拟主机的配置文件,/usr/local/apache/conf/extra/httpd-vhosts.conf 将common改成combined 

技术分享图片

然后 -t graceful 

curl -x127.0.0.1:80 www.example.com -I

技术分享图片

看看log的结果,前两条是curl,最后一个是浏览器访问

技术分享图片

这里只有user-agent信息,因为不是从一个目录跳转过来,所以没有referal信息。

25期Linux20180529 Apche 认证 访问日志 域名跳转

标签:apache日志跳转 认证

原文地址:http://blog.51cto.com/13691454/2126428

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!