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

–>


一、Apache设置用户认证
针对整个目录进行用户认证
1. 编辑配置文件

vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf

2.在配置文件里添加如下段
    

3. 创建密码文件以及用户和密码

[[email protected] ~]# /usr/local/httpd2.4/bin/htpasswd -c -m /data/.htpasswd lx                #使用工具htpassswd进行创建,-c为创建,-m为MD5加密,创建一个lx用户
New password:                                #输入密码
Re-type new password:                  #确认密码
Adding password for user lx          #提示增加成功

[[email protected] ~]# cat /data/.htpasswd                   #可以使用cat查看一下,已经创建密码文件,有一个用户lx,密码是加密的
lx:$apr1$huJnficE$LHzem2jG/myQwj0T8Io5Q0

4.更改完成后不要忘记检查配置文件是否正确以及重新加载配置文件

[[email protected] ~]# /usr/local/httpd2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/httpd2.4/bin/apachectl graceful

5. 使用curl进行测试密码是否成功设置,-I只显示请求头信息,-u设置服务器的用户和密码

[[email protected] ~]# curl -x127.0.0.1:80 111.com -I           #不输入密码进行访问,
HTTP/1.1 401 Unauthorized                                                  #提示401,401的意思为需要认证
Date: Fri, 02 Mar 2018 20:08:29 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm=”111.com user auth”
Content-Type: text/html; charset=iso-8859-1

[[email protected] ~]# curl -x127.0.0.1:80 -uzhangsan:asdfg 111.com -I        #-u指定用户和密码,输入用户张三,密码asdfg,
HTTP/1.1 200 OK                                                                                                  #提示200,表示正常访问
Date: Fri, 02 Mar 2018 20:08:16 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

针对单个的文件进行用户认证
1.编辑配置文件

vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf

2.同样更改完成后记得检查配置文件是否正确以及重新加载配置文件

/usr/local/httpd2.4/bin/apachectl -t
/usr/local/httpd2.4/bin/apachectl graceful

3.在指定的目录下新建一个123.php进行测试

vim /data/wwwroot/111.com/123.php
添加如下内容
<?php
echo “123.php”;                      #内容可以随便写,主要是进行测试用

4.使用curl进行测试

[[email protected] ~]# curl -x127.0.0.1:80 111.com -I                            #当访问111.com的时候可以正常访问
HTTP/1.1 200 OK
Date: Fri, 02 Mar 2018 20:28:51 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

[[email protected] ~]# curl -x127.0.0.1:80 111.com/123.php -I                                #当访问111.com下的123.php时候出现401
HTTP/1.1 401 Unauthorized 
Date: Fri, 02 Mar 2018 20:31:44 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm=”111.com user auth”
Content-Type: text/html; charset=iso-8859-1

[[email protected] ~]# curl -x127.0.0.1:80 -uzhangsan:asdfg 111.com/123.php -I     #输入用户名和密码后可以正常访问
HTTP/1.1 200 OK
Date: Fri, 02 Mar 2018 20:32:03 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

二、域名跳转
1. 编辑虚拟主机配置文件

vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf

    在配置文件里添加以下内容

<VirtualHost *:80>
    DocumentRoot “/data/wwwroot/111.com”
    ServerName 111.com
    ServerAlias www.example.com
     <IfModule mod_rewrite.c>                                                    #需要mod_rewrite模块支持
        RewriteEngine on                                                                 #打开rewrite功能
        RewriteCond %{HTTP_HOST} !^111.com$                         #定义rewrite的条件,主机名(域名)不是 111.com 的满足条件
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]          #定义rewrite规则,当满足上面的条件时,这条规则才会执行,跳转至111.com,301表示永久跳转
     </IfModule>
    ErrorLog “logs/111.com-error_log”
    CustomLog “logs/111.com-access_log” common
</VirtualHost

2.同样更改完成后记得检查配置文件是否正确以及是否加载rewrite模块

/usr/local/httpd2.4/bin/apachectl -t
/usr/local/httpd2.4/bin/apachectl -M |grep rewrite

3.如果没有加载rewrite模块,那么需要在配置文件里加载

vim /usr/local/httpd2.4/conf/httpd.conf

   打开配置文件后搜索关键字:rewrite   找到如下行:
  LoadModule rewrite_module modules/mod_rewrite.so   将这一行前面的#号去掉即可。
4. 使用curl进行测试

[[email protected] ~]# curl -x127.0.0.1:80 www.example.com -I               #访问www.example.com
HTTP/1.1 301 Moved Permanently                                                         #显示301 Moved
Date: Fri, 02 Mar 2018 22:11:00 GMT 
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Location: http://111.com/                                   #成功跳转至111.com
Content-Type: text/html; charset=iso-8859-1

三、Apache访问日志
1.Apache日志的存放地址

[[email protected] ~]#
ls /usr/local/httpd2.4/logs/

111.com-access_log  123.com-access_log  aaa.com-access_log  access_log  httpd.pid

111.com-error_log   123.com-error_log   aaa.com-error_log   error_lo

       access_log为访问日志,记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式 
       error_log为错误日志,记录下任何错误的处理请求,它的位置和内容由ErrorLog指令控制,通常服务器出现什么错误,首先对它进行查阅,是一个最重要的日志文件。
2.日志的格式
  编辑Apache的主配置文件

vim /usr/local/httpd2.4/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

   默认的格式使用的是第二行common格式
3. 更改日志的格式
    编辑配置文件

vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf

   打开配置文件后,找到CustomLog,将后面的common更改为combined

<VirtualHost *:80>

    DocumentRoot “/data/wwwroot/aaa.com

    ServerName

aaa.com

    ServerAlias

www.aaa.comwww.123.com

    ErrorLog “logs/aaa.com-error_log”

    CustomLog “logs/aaa.com-access_log”
common                 #将这里的common更改为combined即可

</VirtualHost>

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章