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 认证 访问日志 域名跳转
原文地址:http://blog.51cto.com/13691454/2126428