十周三次课

十周三次课php

11.18Apache用户认证html

11.19/11.20域名跳转apache

11.21Apache访问日志vim

11.18Apache用户认证浏览器

httpd的用户认证

•  vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成以下内容安全

<VirtualHost *:80>服务器

    DocumentRoot "/data/wwwroot/www.123.com"ssh

    ServerName www.123.comcurl

    <Directory /data/wwwroot/www.123.com> //指定认证的目录tcp

        AllowOverride AuthConfig //这个至关于打开认证的开关

        AuthName "123.com user auth" //自定义认证的名字,做用不大

        AuthType Basic //认证的类型,通常为Basic,其余类型阿铭没用过

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

        require valid-user //指定须要认证的用户为所有可用用户

    </Directory>

</VirtualHost>

• /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming

• 从新加载配置-t , graceful

• 绑定hosts,浏览器测试

• curl -x127.0.0.1:80 www.123.com //状态码为401

• curl -x127.0.0.1:80 -uaming:passwd www.123.com //状态码为200

•  还能够针对单个文件进行认证

<VirtualHost *:80>

    DocumentRoot "/data/wwwroot/www.123.com"

    ServerName www.123.com

    <FilesMatch admin.php>

        AllowOverride AuthConfig

        AuthName "123.com user auth"

        AuthType Basic

        AuthUserFile /data/.htpasswd

        require valid-user

    </FilesMatch>

</VirtualHost>

 httpd的用户认证

浏览器在打开一个网站,什么页面都不显示,只弹出一个对话框,让你输入用户名和密码,只有输入正确才能访问网站的内容 。

 需求:abc.com这个网站访问的时候,不能直接访问,必须输入用户名和密码,验证经过以后才能访问网站内容

这样作的目的是增长安全性,可是劣势是用户体验不好,由于每一个人要访问网站都必须输入用户名和密码。

1. 虚拟主机的配置文件:

编辑配置文件

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

//更改111.com的虚拟主机认证内容以下:

在文件中编辑配置文件,将如下内容添加到第二段代码中——>由于第一个虚拟主机是默认虚拟主机

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/111.com>    //指定认证的目录
        AllowOverride AuthConfig    //这个至关于打开认证的开关,若是没有这一行,那就至关于没有开启
        AuthName "111.com user auth"    //自定义认证的名字,做用不大
        AuthType Basic        //认证的类型,通常为Basic,其余类型几乎没用过
        AuthUserFile /data/.htpasswd   //指定密码文件所在位置——>这里须要指定一个用户名的密码文件
         require valid-user        //指定须要认证的用户为所有可用用户 
    </Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log"  common
</VirtualHost>

而后保存退出

2.Apache自带命令htpasswd建立密码文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd tianqi
New password: 
Re-type new password: 
Adding password for user tianqi
[root@tianqi-01 ~]# 

说明:

  • -c:是建立;
  • -m:是指定md5加密类型;
  • 指定用户为tianqi(PS:若是再次新增用户,就不须要再加-c ,由于已经建立过密码文件了);

如果提示错误,那么先查看文件是否生成,而后查看文件内容,再去排查其余错误。

3.查看 /data/.htpasswd 文件内容 - 能看到文件中有一行,以 : 冒号为分割。

左边是用户名,右边是MD5加密的密码 ,由于是用 -m 指定了加密的类型。

[root@tianqi-01 ~]# cat /data/.htpasswd 
tianqi:$apr1$awcjrqIN$5lD3DZBm9WWMyJV3jJEAs.
[root@tianqi-01 ~]# 

4. 再增长zhangsan用户,就不须要去 -c参数 建立了,由于已经建立过了(密码为123456)

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd zhangsan
New password: 
Re-type new password: 
Adding password for user zhangsan

5. 查看文件内容,会发现又增长了一行密码
[root@tianqi-01 ~]# cat /data/.htpasswd
tianqi:$apr1$awcjrqIN$5lD3DZBm9WWMyJV3jJEAs.
zhangsan:$apr1$POkg5UqP$YJSvyCCgajf2ArL45E.fc.
[root@tianqi-01 ~]# 

6. 查看配置文件是否有错误,并从新加载配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

7.测试,访问111.com的时候,会提示401状态码 

401状态码,说明访问的内容须要作用户认证。

[root@tianqi-01 ~]# curl -x127.0.0.1:80 111.com

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
[root@tianqi-01 ~]# 

[root@tianqi-01 ~]# curl -x127.0.0.1:80 111.com -I
HTTP/1.1 401 Unauthorized
Date: Thu, 01 Mar 2018 12:39:45 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

8.一样能够在浏览器中输入111.com——>前提是要先在物理机中hosts文件定义111.com。

192.168.11.136 www.abc.com www.123.com 111.com

9. 定义完本地hosts后,用浏览器访问111.com网站时就会会发现须要输入用户名和密码

10. 在输入用户名和密码,用户密码就是刚才增长的用户和设置的密码

11. 会发现正常访问到页面了

12. 这个就是用户认证

### curl输入用户名和密码

curl -x127.0.0.1:80 -utianqi:123456 111.com -I

-u参数,而后加用户名,再:冒号密码

[root@tianqi-01 ~]# curl -x127.0.0.1:80 -utianqi:123456 111.com -I
HTTP/1.1 200 OK
Date: Thu, 01 Mar 2018 13:53:19 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

这时会发现状态码改变了,状态码变成了200(200即为正常)

如果输错密码,那么状态码又会变成401

[root@tianqi-01 ~]# curl -x127.0.0.1:80 -utianqi:23456 111.com -I
HTTP/1.1 401 Unauthorized
Date: Thu, 01 Mar 2018 13:55:38 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

还能够针对单个文件进行认证(针对文件)

针对 admin.php文件 只有打开这个文件才会执行下面的操做

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    <FilesMatch admin.php>  //跟上面的不一样的是这行,上面是指定认证的目录,这里是指定单个文件。
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>  //这行也不一样
</VirtualHost>

这里和前面的用户认证惟一不一样的就是,使用的是 FilesMatch ,当访问的文件匹配到admin.php的时候,它才去执行如下的配置,而前面的用户认证使用的Directory,指定了一个目录,只要是这个目录下面的都会去认证,这里是FilesMatch ,匹配这个文件的。

1. 更改配置文件,注释掉Directory,去使用FilesMatch 

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

  • 在配置文件修改为如下:

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    #<Directory /data/wwwroot/111.com>
    <FilesMatch 123.php>
        AllowOverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
         require valid-user
    </FilesMatch>
    #</Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log"  common
</VirtualHost>

2.检查配置文件是否存在语法错误,并从新加载配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

3.编辑123.php文件

[root@tianqi-01 ~]# vim /data/wwwroot/111.com/123.php

在配置文件中写入

<?php
echo "123.php";

保存退出

4.检查是否能访问网站,这里会看到不加-u 也能访问到网站,状态码也是200,而不是401了

[root@tianqi-01 ~]# curl -x127.0.0.1:80 -utianqi:123456 111.com
111.com[root@tianqi-01 ~]# curl -x127.0.0.1:80  111.com
111.com[root@tianqi-01 ~]# curl -x127.0.0.1:80  111.com -I
HTTP/1.1 200 OK
Date: Thu, 01 Mar 2018 14:11:39 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

5.可是在访问123.php的时候,会提示401,这是由于针对123.php作了一个限制

[root@tianqi-01 ~]# curl -x127.0.0.1:80  111.com/123.php -I
HTTP/1.1 401 Unauthorized
Date: Thu, 01 Mar 2018 14:12:53 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

6.这时候-u指定用户名和密码,就能够访问123.php了

[root@tianqi-01 ~]# curl -x127.0.0.1:80  -utianqi:123456 111.com/123.php -I
HTTP/1.1 200 OK
Date: Thu, 01 Mar 2018 14:13:57 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

11.19/11.20域名跳转

域名跳转

•需求,把123.com域名跳转到www.123.com,配置以下:

<VirtualHost *:80>

    DocumentRoot "/data/wwwroot/www.123.com"

    ServerName www.123.com

    ServerAlias 123.com

    <IfModule mod_rewrite.c> //须要mod_rewrite模块支持

        RewriteEngine on  //打开rewrite功能

        RewriteCond %{HTTP_HOST} !^www.123.com$  //定义rewrite的条件,主机名(域名)不是www.123.com知足条件

        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] //定义rewrite规则,当知足上面的条件时,这条规则才会执行

</IfModule>

</VirtualHost>

• /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,须要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#

• curl -x127.0.0.1:80 -I 123.com //状态码为301

域名跳转的做用有两点:

域名跳转,经常使用于老域名跳转到新域名,由于老用户已经习惯记住一个域名了,忽然页面换到了新的域名,就须要作这个操做。一个域名就是一个网站的名称,就能够经过域名访问到该网站,由于域名涉及到一个SEO,SEO会对网站的内容进行一个价值权重定义,旧网站价值高,会一直存在各大搜索引擎,会对新网站产生不可预料的影响,因此为了让老用户和搜索引擎把重心转移到新网站,因此就须要作一个老域名跳转到新域名的操做。SEO涉及到一个排名,网站的排名越高,在搜索引擎排名就越靠前,而这个权重是根据网站的页面数量来断定的,搜索引擎认为该网站比较有价值,就会提高该网站权重,而它判断网站是根据域名来的,在搜索引擎眼里,一个网站是根据域名来判断的。若一个网站有A、B两个域名能够同时访问,那搜索引擎会认为第二个B域名是一个冒牌货,因此搜索引擎会把高权重给第一个A域名,低权重给第二个B域名。而为了解决这种问题,把一个网站A域名跳转到另外一个网站B域名上,提高跳转到的那个域名的权重,而且定义一个301的状态码。

301状态码叫作永久重定向、永久跳转。永久跳转,搜索引擎认为A网站不用了,就能够把A网站的权重降下去,而后把全部权重加到B网站上去,这就是301状态码的做用。

域名跳转配置文件介绍 

1.编辑配置文件的内容

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    #<Directory /data/wwwroot/111.com>
   # <FilesMatch 123.php>
        #AllowOverride AuthConfig
        #AuthName "111.com user auth"
        #AuthType Basic
        #AuthUserFile /data/.htpasswd
        # require valid-user
    #</FilesMatch>
    #</Directory>
    <IfModule mod_rewrite.c>    //须要mod_rewrite模块支持

          RewriteEngine on    //打开rewrite功能,on就是打开 
        RewriteCond %{HTTP_HOST} !^111.com$    //定义rewrite的条件,主机名(域名)不是111.com知足条件
         RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]    //定义rewrite规则,当知足上面的条件时,这条规则才会执行
</IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log"  common
</VirtualHost>

        1. mod_rewrite模块,在编译apache的时候用到了一个most,most会把大多数模块编译进来;若是没有用most,没有加任何的编译参数,那mod_rewrite模块也不会出现

        2. 定义rewrite的条件,主机名(域名)不是111.com知足条件。当域名不是111.com的时候,就会跳转到111.com,也就是说如今以111.com为主域名,它的权重大一点。若是不是 ! 叹号,表示取反的意思。HOST就是定义的域名,111.com就是HOST。!^111.com$,表示以111开头的,到com结尾的,这样定义是为了包含111.com也会匹配

        3. 这个^/(.*)$ 理解为: 非域名之外剩下的部分, / 斜杠表示域名后面的斜杠,(.*)就是 / 斜杠后的全部, $表示结束语句。

凡是以 ^/(.*)$ 域名的都会跳转到 http://111.com/(.*),例如:^/(.*)/([1-9]+)$ 跳转就能够写成 http://111.com/$1/$2 - 这个 R=301,L 在跳转完成后还须要加一个R=301状态码,L 表示只跳转一次结束 - 301是永久重定向 - 302是临时重定向,临时重定向在搜索引擎不太友好,它会认为仅仅是临时的,不过把原来域名的权重下降。

2.检测修改的配置文件是否存在语法错误

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

3.从新加载配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

4.在测试前,先检查是否加载了rewrite模块

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
[root@tianqi-01 ~]# 

5. 这里会看到并无加载rewrite模块,因此还须要到配置文件中打开rewrite模块 

6. 若是没有加载,还须要打开rewrite模块,由于在编译的时候指定了most,因此rewrite模块必定存在 

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf 

搜索/rewrite ,找到这一行,并将前面的# 号去掉,显示为

LoadModule rewrite_module modules/mod_rewrite.so

7.检测修改的配置文件是否存在语法错误,并从新加载配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

8.再来查看rewrite模块

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
 rewrite_module (shared)
[root@tianqi-01 ~]# 

9.查看虚拟主机配置文件

[root@tianqi-01 ~]# cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

10.开始测试 curl -x可使用127.0.0.1也能够是192.168.11.136 进行测试,由于80端口监听的是全网。 

什么是监听全网,就是这台主机上全部的网卡的IP,80端口默认是:::80,表示监听全网。

[root@tianqi-01 ~]# netstat -lntp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      767/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      999/master          
tcp6       0      0 :::80                   :::*                    LISTEN      12084/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      767/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      999/master          
[root@tianqi-01 ~]# 

11. 在虚拟主机中添加2111.com.cn ,而后在从新检查语法错误,在加载配置文件

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com 2111.com.cn
   # <Directory /data/wwwroot/111.com>
   #<FilesMatch 123.php>
        #AllowOverride AuthConfig
        #AuthName "111.com user auth"
        #AuthType Basic
        #AuthUserFile /data/.htpasswd
        #require valid-user
   #</FilesMatch>
   #</Directory>
   <IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} !^111.com$
   RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
   </IfModule>

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

12.访问2111.com.cn

curl -x192.168.11.136:80 2111.com.cn -I - -I参数,表示不显示内容,只看状态码

[root@tianqi-01 ~]# curl -x192.168.11.136:80 2111.com.cn -I
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Mar 2018 13:34:59 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Location: http://www.123.com/
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

13.会看到状态码为301

14. 查看2111.com.cn网站的内容

[root@tianqi-01 ~]# curl -x192.168.11.136:80 2111.com.cn
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.123.com/">here</a>.</p>
</body></html>
[root@tianqi-01 ~]# 

15.在域名后面随便添加字符,最后仍是跳转到111.com

[root@tianqi-01 ~]# curl -x192.168.11.136:80 2111.com.cn/adfjadfa/adfdafadfaf -I
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Mar 2018 13:49:08 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Location: http://www.123.com/adfjadfa/adfdafadfaf
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

16. 去访问随便输入字符的网站,会显示404状态码

404状态码,表示这个页面不存在

401状态码,表示用户名密码验证的。若是验证不对,就是401状态码;验证对了,就是200状态码

[root@tianqi-01 ~]# curl -x192.168.11.136:80 http://111.com/adfjadfa/adfdafadfaf -I

HTTP/1.1 404 Not Found

Date: Wed, 20 Dec 2017 23:42:08 GMT

Server: Apache/2.4.29 (Unix) PHP/5.6.30

Content-Type: text/html; charset=iso-8859-1

17.验证正确,就会出现200验证码

[root@tianqi-01 ~]# curl -x127.0.0.1:80 http://111.com/123.php -I
HTTP/1.1 200 OK
Date: Sat, 03 Mar 2018 06:15:07 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

18.修改配置文件,将将granted改为denied,就会出现403验证码

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

//搜索granted,将granted改为denied

<Directory />
    AllowOverride none
    #Require all granted
    Require all denied

//检测语法错误,并从新加载配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

[root@tianqi-01 ~]#  /usr/local/apache2.4/bin/apachectl graceful

[root@tianqi-01 ~]# curl -x192.168.11.136:80 http://111.com/123.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 04 Mar 2018 01:48:51 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

[root@tianqi-01 ~]# 

19.修改配置文件,从新将denied改成granted,检测语法错误并从新加载配置文件,就会出现200验证码

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK
[root@tianqi-01 ~]#  /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# !curl

curl -x192.168.11.136:80 http://111.com/123.php -I
HTTP/1.1 200 OK
Date: Sun, 04 Mar 2018 01:53:10 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

//说明:

  • -I 不显示访问内容,只看状态码
  • 404 这个页面不存在
  • 301 永久跳转
  • 401 用户密码验证,密码验证不对就401,验证对了就200
  • 403 把granted改为denied就会403

11.21Apache访问日志

Apache访问日志

访问日志,就是在浏览器中输入网址,每一次访问,每一次请求,都会在服务器上生成一个日志。

访问日志的做用很大,不只能够记录网站的访问日志,还能够在网站有异常发生时帮助咱们定位问题,好比有攻击时,是能够经过查看日志看到一些规律的。日志记录了不少系统的信息,经过读日志,能够找到系统问题的缘由。而日志有不一样的格式,分为common和combined,combined能够记录更多的信息。

1.查看默认配置文件日志

[root@tianqi-01 ~]# ls /usr/local/apache2.4/logs/
111.com-access_log  111.com-error_log  abc.com-access_log  abc.com-error_log  access_log  error_log  httpd.pid
[root@tianqi-01 ~]# ls /usr/local/apache2.4/logs/111.com-access_log
/usr/local/apache2.4/logs/111.com-access_log
[root@tianqi-01 ~]# cat /usr/local/apache2.4/logs/111.com-access_log 
192.168.11.136 - - [02/Mar/2018:20:46:38 +0800] "GET HTTP://www.example.com/ HTTP/1.1" 200 7
192.168.11.136 - - [02/Mar/2018:20:47:29 +0800] "GET HTTP://www.example.com/ HTTP/1.1" 200 7
127.0.0.1 - - [03/Mar/2018:13:49:11 +0800] "GET HTTP://111.com/ HTTP/1.1" 401 381
127.0.0.1 - - [03/Mar/2018:13:49:20 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 401 -
192.168.11.1 - tianqi [03/Mar/2018:13:49:37 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:14 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:16 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:17 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:17 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:18 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:18 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:18 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:18 +0800] "GET / HTTP/1.1" 200 7
192.168.11.1 - tianqi [03/Mar/2018:13:50:19 +0800] "GET / HTTP/1.1" 200 7
127.0.0.1 - tianqi [03/Mar/2018:13:51:35 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 -
127.0.0.1 - tianqi [03/Mar/2018:13:52:04 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 401 -
127.0.0.1 - tianqi [03/Mar/2018:13:56:38 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7
127.0.0.1 - - [03/Mar/2018:13:56:56 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7
127.0.0.1 - - [03/Mar/2018:13:57:05 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 -
127.0.0.1 - - [03/Mar/2018:13:57:45 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 401 -
127.0.0.1 - tianqi [03/Mar/2018:13:58:26 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 200 -
192.168.11.136 - - [03/Mar/2018:14:12:59 +0800] "HEAD HTTP://2111.com.cn/ HTTP/1.1" 301 -
192.168.11.136 - - [03/Mar/2018:14:13:13 +0800] "GET HTTP://2111.com.cn/ HTTP/1.1" 301 223
192.168.11.136 - - [03/Mar/2018:14:13:27 +0800] "HEAD HTTP://2111.com.cn/adfjadfa/adfdafadfaf HTTP/1.1" 301 -
192.168.11.136 - - [03/Mar/2018:14:13:44 +0800] "HEAD http://111.com/adfjadfa/adfdafadfaf HTTP/1.1" 404 -
127.0.0.1 - - [03/Mar/2018:14:15:07 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 -
[root@tianqi-01 ~]# 

查看111.com访问日志,日志里面的HEAD都是curl命令致使的,日志里面的GET就是不加-I参数的,再加上-I只会输出状态码,并不会把内容GET下来。

日志里面包含来源的IP、时间、行为、访问的域名、HTTP的版本1.一、状态码以及大小。

上面输出的日志太过简单,不是咱们所须要的日志格式,日志其实能够自定义格式的。

1. 打开主配置文件

[root@tianqi-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf

//不更改信息 搜索 /LogFormat ,看到的就是文件格式,这里提供了两个文件的格式,默认使用的是common 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

默认使用的是common

%h,来源IP

%l,用户

%u,用户名和密码

%t,时间

%r,行为和网址

%>s,状态码

%b,页面大小

另一种形式除了显示以上的内容,还显示下面的内容。

{Referer}i 表示访问页面的上一个所访问的页面

%{User-Agent}i 表示用户代理,是经过浏览器访问,仍是curl命令访问,最终得到网站的内容,浏览器就是用户代理。

2. 打开虚拟机配置文件 

[root@tianqi-01 ~]#  vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

//把common日志格式格式改为combined日志格式,示例以下:

CustomLog "logs/111.com-access_log" combined

3. 检查配置文件是否存在语法错误,并重启配置文件

[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@tianqi-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@tianqi-01 ~]# 

4. 使用curl命令访问网址

[root@tianqi-01 ~]# curl -x192.168.11.136:80 http://111.com/123.php -I
HTTP/1.1 200 OK
Date: Sat, 03 Mar 2018 06:31:24 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

[root@tianqi-01 ~]# 

5. 再用浏览器访问下网址

[root@tianqi-01 ~]# curl -x 127.0.0.1:80 http://111.com/123.php -I
HTTP/1.1 200 OK
Date: Sat, 03 Mar 2018 06:35:36 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8

6.查看日志文件 - 会看到日志文件丰富了

[root@tianqi-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_log
127.0.0.1 - - [03/Mar/2018:13:56:56 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7
127.0.0.1 - - [03/Mar/2018:13:57:05 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 -
127.0.0.1 - - [03/Mar/2018:13:57:45 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 401 -
127.0.0.1 - tianqi [03/Mar/2018:13:58:26 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 200 -
192.168.11.136 - - [03/Mar/2018:14:12:59 +0800] "HEAD HTTP://2111.com.cn/ HTTP/1.1" 301 -
192.168.11.136 - - [03/Mar/2018:14:13:13 +0800] "GET HTTP://2111.com.cn/ HTTP/1.1" 301 223
192.168.11.136 - - [03/Mar/2018:14:13:27 +0800] "HEAD HTTP://2111.com.cn/adfjadfa/adfdafadfaf HTTP/1.1" 301 -
192.168.11.136 - - [03/Mar/2018:14:13:44 +0800] "HEAD http://111.com/adfjadfa/adfdafadfaf HTTP/1.1" 404 -
127.0.0.1 - - [03/Mar/2018:14:15:07 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 -
127.0.0.1 - - [03/Mar/2018:14:35:36 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
[root@tianqi-01 ~]# 

友情连接:阿铭Linux

相关文章
相关标签/搜索