LAMP架构(Apache用户认证、域名跳转、Apache访问日志)

Apache用户认证

  • 修改虚拟主机配置文件

此处教程我们编辑/usr/local/apache2.4/conf/extra/httpd-vhosts.conf修改上节配置的111.com的虚拟机配置为以下内容:

    <Directory /data/wwwroot/www.111.com> //指定认证的目录
        AllowOverride AuthConfig //这个相当于打开认证的开关
        AuthName "111.com user auth" //自定义认证的名字,作用不大
        AuthType Basic //认证的类型,一般为Basic,其他类型阿铭没用过
        AuthUserFile /data/.htpasswd  //指定密码文件所在位置
        require valid-user //指定需要认证的用户为全部可用用户
    </Directory>

  • 创建用户并生成密码
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd   用户名

此处密码我们设定为:12345678 用户为 yolks

  • 重新加载配置文件
/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl  graceful
  • 重新测试提示401,表示需要用户验证
curl -x127.0.0.1:80  111.com

直接命令行测试

curl -x127.0.0.1:80 -uyolks:12345678 111.com -I

返回状态码200说明请求正常

还可以针对访问的页面进行认证

  • 例如管理员登陆用到admin.php,则可以对此文件进行认证方可访问:

需要在/usr/local/apache2.4/conf/extra/httpd-vhosts.conf配置文件中111.com添加如下配置表示对admin.php文件做限制:

<FilesMatch admin.php>
        AllowOverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd //指定密码文件所在位置
        require valid-user
</FilesMatch>

  • 编辑需要验证的文件
vim  /data/wwwroot/111.com/admin.php


<?php
echo "this is admin.php test page!";
?>
  • 正常访问,不输入密码测试,提示无权限401
curl -x127.0.0.1:80   111.com/admin.php -I

  • 输入密码请求测试
curl -x127.0.0.1:80 -uyolks:12345678  111.com/admin.php

返回数据正常200

域名跳转

  • 编辑虚拟机配置

对应文件还是虚拟主机配置文件/usr/local/apache2.4/conf/httpd.conf中添加如下配置:

<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
        RewriteEngine on  //打开rewrite功能
        RewriteCond %{HTTP_HOST} !^.111.com$  //定义rewrite的条件,主机名(域名)不是111.com时满足条件跳转到111.com来
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L(L表示last只跳转1次)] //定义rewrite规则,当满足上面的条件时,这条规则才会执行
</IfModule>

如下图所示:

  • 检查配置文件是否有误
/usr/local/apache2.4/bin/apachectl  -t
  • 重新加载配置文件
/usr/local/apache2.4/bin/apachectl  graceful
  • 检查rewrite模块是否加载
/usr/local/apache2.4/bin/apachectl   -M
  • 没有加载则需要编辑apache配置文件,取消rewrite模块的注释
vi   /usr/local/apache2.4/conf/httpd.conf

  • 检查配置文件是否有误
/usr/local/apache2.4/bin/apachectl  -t
  • 重新加载配置文件
/usr/local/apache2.4/bin/apachectl  graceful
  • 测试
curl -x127.0.0.1:80 www.example.com -I

Apache访问日志

默认apache 配置的日志文件

路径: /usr/local/apache2.4/logs/111.com-access_log

查看111.com虚拟主机用户访问请求日志

此日志文件输出的内容含义参考主配置文件 /usr/local/apache2.4/conf/httpd.conf

默认显示规则

LogFormat "%h %l %u %t \"%r\" %>s %b" common
  • 参数含义解释
    • %h : 访问来源ip
    • %l : 用户
    • %u : 用户
    • %t : 时间
    • %r : request行为,包括方式和网址
    • s : 状态码
    • %b : 大小
  • 主配置文件还有一种显示规则
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  • 比起默认的参数还多了两个
    • %{Referer} : 简单理解就是访问某个网站目录之后,进入之前的浏览器链接就是当前链接的referer
    • %{User-Agent} : 用户代理,curl和单独的浏览器分别代表不同的user-agent,浏览器访问即浏览器为用户代理,curl访问也是用户代理;

在虚拟主机配置文件配置访问日志

  • 将 common参数修改为 combined

此处新访问多显示内容即为新格式format生效的格式

拓展

apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370

转载于:https://my.oschina.net/yolks/blog/1922681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值