小木木 发表于 2018-11-17 11:31:20

apache用户认证及域名跳转、访问日志

一、apache的用户认证
  vim /usr/local/apache/conf/extra/httpd-vhosts.conf //把11.com那个虚拟主机编辑成如下内容
  
  DocumentRoot "/data/wwwroot/www.123.com"
  ServerName www.123.com
   //指定认证的目录
  AllowOverride AuthConfig //这个相当于打开认证的开关
  AuthName "123.com user auth" //自定义认证的名字,作用不大
  AuthType Basic //认证的类型,一般为Basic,其他类型阿铭没用过
  AuthUserFile /data/.htpasswd//指定密码文件所在位置
  require valid-user //指定需要认证的用户为全部可用用户
  
  

  修改完成后,要生成密码文件
  2、生成密码文件: /usr/local/apache/bin/htpasswd -c -m /data/.htpasswd riven
  然后输入你想要的密码。然后就会生成密码文件
  -c创建
  -m 指定加密类型
  如果再要增中用户,就不用-c选项了
  重新加载配置/usr/local/apache/bin/apachectl -t , graceful

  然后我们用curl -x192.168.1.31:80 123.com 去访问,提示401,说明你访问的内容需要做用户认证
  我们如何用curl -x 去访问用户认证的网站呢?
  curl -x192.168.1.31:80 -uriven:1122 123.com
  提示200表示访问成功

  然后我们用windows浏览器去访问,要修改hosts文件,在里面加一行 192.168.1.31 123.com

  3、针对单个文件进行用户认证
  
  DocumentRoot "/data/wwwroot/www.123.com"
  ServerName 123.com
      //我们前面指定的是整个目录,现在指定的是单个页面。
  AllowOverride AuthConfig
  AuthName "123.com user auth"
  AuthType Basic
  AuthUserFile /data/.htpasswd
  require valid-user
  
  

  修改完配制后,/usr/local/apache/bin/apachectl -t 检查配制文件,/usr/local/apache/bin/apachect graceful更新配置文件
  测试:

二、域名跳转
  1、什么叫做域名跳转: 就是从一个域名访问然后它跳到另一个域名上面;
  (301永久重定向,提高权重,302就是临时重定向)
  例:把33.com域名跳转到123.com,配置如下:
  
  DocumentRoot "/data/wwwroot/www.123.com"
  ServerName 11.com
  ServerAlias 123.com
     //需要mod_rewrite模块支持
  RewriteEngine on   //打开rewrite功能
  RewriteCond %{HTTP_HOST} !^11.com$//定义rewrite的条件,主机名(域名)不是11.com满足条件
  RewriteRule ^/(.)$ http://11.com/$1    //定义rewrite规则,当满足上面的条件时,这条规则才会执行
  
  
  。
  /usr/local/apache/bin/apachectl -t
  /usr/local/apache/bin/apachectl -M |grep rewrite 查看有没有加载rewrite模块
  若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#
  2、测试
  curl -x127.0.0.1:80 -I 123.com-I //状态码为301

三、apache访问日志
  1、访问日志记录用户的每一个请求,日志目录在/usr/local/apache/logs
  2、给日志定义格式
  vim /usr/local/apache/conf/httpd.conf //搜索LogFormat ,它给你提供了两个格式:
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  LogFormat "%h %l %u %t \"%r\" %>s %b" common
  (User-Agent 用户代理,Referer就是浏览器上一次所访问的网址。)
  查看日志:cat /usr/local/apache/logs/123.com-access_log

  更改日志:

  重新加载配置文件 -t,graceful
  查看日志:tail -n5 /usr/local/apache/logs/123.com-access_log


页: [1]
查看完整版本: apache用户认证及域名跳转、访问日志