<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerName abc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
/usr/local/apache2/bin/apachectl –tjavascript
/usr/local/apache2/bin/apachectl gracefulphp
mkdir -p /data/wwwroot/abc.comcss
mkdir -p/data/wwwroot/111.comhtml
vim /data/wwwroot/abc.com/index.phpjava
<?php echo "abc.com"; ?>
<?php echo "111.com"; ?>
这个功能就是在用户访问网站的时候,须要输入用户密码才能顺利访问。一些比较重要的站点或者网站后台一般会加上用户认证,目的是保证安全。python
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf 编辑配置文件linux
更改111.com的虚拟主机认证内容以下:apache
<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 AuthUserFile /data/.htpasswd require valid-user </Directory> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
注释:vim
<Directory /data/wwwroot/111.com> //指定认证的目录 AllowOverride AuthConfig //这个至关于打开认证的开关 AuthName "111.com user auth" //自定义认证的名字,做用不大 AuthType Basic //认证的类型,通常为Basic,其余类型阿铭没用过 AuthUserFile /data/.htpasswd //指定密码文件所在位置 require valid-user //指定须要认证的用户为所有可用用户 </Directory>
[root@xuexi-001 ~]# /usr/local/apache2/bin/htpasswd -c -m /data/.htpasswd guo New password: //新建密码 Re-type new password: //再次输入密码 Adding password for user guo [root@xuexi-001 ~]# ls /data/.htpasswd //查看建立密码文件 /data/.htpasswd [root@xuexi-001 ~]# cat /data/.htpasswd //查看生成用户密码 guo:$apr1$9HwvE/Zz$65C8zBbv0d3lViWpCpq2U/
再建立一个用户并生成密码文件windows
[root@xuexi-001 ~]# /usr/local/apache2/bin/htpasswd -c -m /data/.htpasswd laoshi New password: Re-type new password: Adding password for user laoshi [root@xuexi-001 ~]# ls /data/.htpasswd /data/.htpasswd [root@xuexi-001 ~]# cat /data/.htpasswd laoshi:$apr1$xwJc0bq2$dRFFgywsDVUmP6Bf5bkXd1
备注:
须要注意的是,再次生成用户密码文件的时候不用加-c 若是加上-c 会将以前生成的密码文件 .htpasswd 覆盖
[root@xuexi-001 ~]# /usr/local/apache2/bin/htpasswd -m /data/.htpasswd guo New password: Re-type new password: Adding password for user guo [root@xuexi-001 ~]# ls /data/.htpasswd /data/.htpasswd [root@xuexi-001 ~]# cat /data/.htpasswd laoshi:$apr1$xwJc0bq2$dRFFgywsDVUmP6Bf5bkXd1 guo:$apr1$CnZW7fTB$IewDNgxjxk.EhQcTai5Lz0
说明:
-c:是建立;
-m:是指定md5加密类型;
指定用户为xie(PS:若是再次新增用户,就不须要再加-c ,由于已经建立过密码文件了);
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# curl -x192.168.5.130: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>
访问111.com,出现401状态码,说明访问的这个域名须要用户认证。
在本地windows系统里作hosts解析111.com ,C:\Windows\System32\drivers\etc,格式:192.168.5.130 111.com
定义完本地hosts后,用浏览器访问111.com网站时就会出现用户认证,用户密码就是刚才增长的用户和设置的密码
[root@xuexi-001 ~]# curl -x192.168.5.130:80 -u guo:111111 111.com -I HTTP/1.1 200 OK Date: Wed, 27 Jun 2018 15:35:24 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8
说明:状态码变成200了,就是正常的,-u的做用是指定用户和密码。 -I 只显示请求头的信息
修改虚拟主机配置文件
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com <FilesMatch 123.php> AllowOverride AuthConfig AuthName "111.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </FilesMatch> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost> [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com <FilesMatch 123.php> //这里改成制定为文件,对123.php 文件作限制 AllowOverride AuthConfig AuthName "111.com user auth" AuthType Basic AuthUserFile /data/.htpasswd require valid-user </FilesMatch> ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
在111.com目录下编辑建立测试文件123.php
[root@xuexi-001 ~]# vi /data/wwwroot/111.com/123.php <?php echo"123.php"; ?> [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
用curl -x访问:
[root@xuexi-001 ~]# curl -x192.168.5.130:80 111.com -I //不用-u加用户和密码了,也能够访问,出现200状态码 HTTP/1.1 200 OK Date: Wed, 27 Jun 2018 16:03:00 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# curl -x192.168.5.130:80 111.com/123.php -I //可是访问文件123.php时就出现401了,说明须要用户认证了 HTTP/1.1 401 Unauthorized Date: Wed, 27 Jun 2018 16:04:40 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 WWW-Authenticate: Basic realm="111.com user auth" Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# curl -x192.168.5.130:80 -u guo:111111 111.com/123.php -I //只有用-u加用户和密码才能正常访问123.php。 HTTP/1.1 200 OK Date: Wed, 27 Jun 2018 16:05:34 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# curl -x192.168.5.130:80 -u guo:111111 111.com/123.php 123.php[root@xuexi-001 ~]# //使用用户验证后查看文件内容
1.若是某个域名再也不使用了,可是搜索引擎还留着以前的老域名的连接,这意味着用户可能会搜到咱们的网站而且点击老的域名,固须要把老域名作个跳转跳到新域名,这样用户搜的时候,也能够访问网站。
2.一个站点有多个域名会对SEO的排名有影响,若是把多个域名所有跳转到一个指定的域名,这样以这个域名为中心,就能够把权重集中在这个域名上,并给定义一个状态码为301,301叫做永久重定向。
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com aabbcc.com <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule> </VirtualHost>
<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规则,当知足上面的条件时,这条规则才会执行 </IfModule>
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,须要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的# [root@xuexi-001 ~]# vi /usr/local/apache2/conf/httpd.conf #LoadModule rewrite_module modules/mod_rewrite.so //进入配置文件,搜索rewrite,把前面#去掉 LoadModule rewrite_module modules/mod_rewrite.so
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# curl -x192.168.5.130:80 www.example.com -I HTTP/1.1 301 Moved Permanently Date: Wed, 27 Jun 2018 16:55:09 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Location: http://111.com/ Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# curl -x192.168.5.130:80 aabbcc.com -I HTTP/1.1 301 Moved Permanently Date: Wed, 27 Jun 2018 16:55:19 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Location: http://111.com/ Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# curl -x192.168.5.130:80 www.123456.com -I HTTP/1.1 200 OK Date: Wed, 27 Jun 2018 16:57:00 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# curl -x192.168.5.130:80 111.com/asd/123/345 -I HTTP/1.1 404 Not Found Date: Wed, 27 Jun 2018 16:57:36 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# vi /usr/local/apache2/conf/httpd.conf Require all granted 改成 Require all denied [root@xuexi-001 ~]# vi /usr/local/apache2/conf/httpd.conf [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful [root@xuexi-001 ~]# curl -x192.168.5.130:80 111.com/asd/123/345 -I HTTP/1.1 403 Forbidden Date: Wed, 27 Jun 2018 17:05:20 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Content-Type: text/html; charset=iso-8859-1
说明:
-I 不显示访问内容,只看状态码
404 这个页面不存在
301 永久跳转
401 用户密码验证,密码验证不对就401,验证对了就200
403 把granted改为denied就会403
访问日志的做用很大,不只能够记录网站的访问日志,还能够在网站有异常发生时帮助咱们定位问题,好比有***时,是能够经过查看日志看到一些规律的.日志记录了不少系统的信息,经过读日志,能够找到系统问题的缘由。而日志有不一样的格式,分为common和combined,combined能够记录更多的信息。
[root@xuexi-001 ~]# ls /usr/local/apache2/logs/ 111.com-access_log abc.com-access_log access_log 111.com-error_log abc.com-error_log error_log [root@xuexi-001 ~]# ls /usr/local/apache2/logs/111.com-access_log /usr/local/apache2/logs/111.com-access_log [root@xuexi-001 ~]# cat /usr/local/apache2/logs/111.com-access_log 192.168.5.130 - - [27/Jun/2018:22:39:20 +0800] "GET HTTP://www.example.com/ HTTP/1.1" 200 7 192.168.5.130 - - [27/Jun/2018:22:40:40 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7 192.168.5.130 - - [27/Jun/2018:22:40:50 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7 192.168.5.130 - - [27/Jun/2018:22:41:21 +0800] "GET HTTP://www.example.com/ HTTP/1.1" 200 7 192.168.5.130 - - [27/Jun/2018:23:27:11 +0800] "GET HTTP://111.com/ HTTP/1.1" 401 381 192.168.5.1 - - [27/Jun/2018:23:29:43 +0800] "GET /favicon.ico HTTP/1.1" 401 381 192.168.5.1 - - [27/Jun/2018:23:29:44 +0800] "GET / HTTP/1.1" 401 381 192.168.5.1 - - [27/Jun/2018:23:29:45 +0800] "GET / HTTP/1.1" 401 381 192.168.5.1 - guo [27/Jun/2018:23:29:55 +0800] "GET / HTTP/1.1" 200 7 192.168.5.1 - guo [27/Jun/2018:23:29:55 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.5.1 - - [27/Jun/2018:23:30:08 +0800] "GET / HTTP/1.1" 401 381 192.168.5.1 - - [27/Jun/2018:23:31:22 +0800] "GET /favicon.ico HTTP/1.1" 401 381 192.168.5.130 - guo [27/Jun/2018:23:33:18 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7 192.168.5.130 - guo [27/Jun/2018:23:33:33 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7 192.168.5.130 - guo [27/Jun/2018:23:35:05 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 - 192.168.5.130 - guo [27/Jun/2018:23:35:24 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 - 192.168.5.130 - guo [27/Jun/2018:23:41:32 +0800] "GET HTTP://111.com/ HTTP/1.1" 200 7 192.168.5.130 - guo [27/Jun/2018:23:41:38 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 - 192.168.5.130 - - [28/Jun/2018:00:03:00 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 - 192.168.5.130 - - [28/Jun/2018:00:04:40 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 401 - 192.168.5.130 - guo [28/Jun/2018:00:05:34 +0800] "HEAD HTTP://111.com/123.php HTTP/1.1" 200 - 192.168.5.130 - guo [28/Jun/2018:00:06:16 +0800] "GET HTTP://111.com/123.php HTTP/1.1" 200 7 127.0.0.1 - - [28/Jun/2018:00:46:52 +0800] "HEAD http://111.com/adfjadfa/adfdafadfaf HTTP/1.1" 404 - 192.168.5.130 - - [28/Jun/2018:00:49:20 +0800] "HEAD HTTP://www.example.com/ HTTP/1.1" 301 - 192.168.5.1 - - [28/Jun/2018:00:50:49 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.5.1 - - [28/Jun/2018:00:50:52 +0800] "GET / HTTP/1.1" 200 7 192.168.5.1 - - [28/Jun/2018:00:50:52 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.5.1 - - [28/Jun/2018:00:51:04 +0800] "GET /1.php HTTP/1.1" 404 203 192.168.5.1 - - [28/Jun/2018:00:51:04 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.5.1 - - [28/Jun/2018:00:51:22 +0800] "GET /123.php HTTP/1.1" 200 7 192.168.5.1 - - [28/Jun/2018:00:51:22 +0800] "GET /favicon.ico HTTP/1.1" 404 209 192.168.5.130 - - [28/Jun/2018:00:53:27 +0800] "HEAD HTTP://111.com/ HTTP/1.1" 200 - 192.168.5.130 - - [28/Jun/2018:00:55:09 +0800] "HEAD HTTP://www.example.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:55:19 +0800] "HEAD HTTP://aabbcc.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:57:36 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 - 192.168.5.130 - - [28/Jun/2018:01:05:20 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 403 - 192.168.5.130 - - [28/Jun/2018:01:06:07 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 -
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/httpd.conf LogLevel warn <IfModule log_config_module> # # The following directives define some format nicknames for use with # a CustomLog directive (see below). # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> # You need to enable mod_logio.c to use %I and %O LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule>
访问日志记录用户的每个请求说明以下:
%h:为访问网站的IP;
%l:为访问远程登陆名,这个字段基本上为"-";
%u:为用户名,当使用用户认证时,这个字段为认证的用户名;
%t:为时间;
%r:为请求的动做(好比用ctrl-I是就为HEADE);
%s:为请求的状态,写成%>s为最后的状态码;
%b:为传输数据大小;
%{Referer}i:为referer信息(请求本次地址上一次的地址就为referer,好比在百度中搜索阿铭linux,而后经过百度的搜索结果页面点击而后到了阿名的论坛,那访问阿铭的论坛的此次请求的referer就是baidu,固然那个地址确定是很长的);
%{User-Agent}i:为浏览器标识,好比你用Firefox或者Chrome浏览器,则该字段显示内容不同,是带有浏览器的标识的。
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf 把common日志格式格式改为combined日志格式,示例以下: ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" combined
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
iptables -I INPUT -p tcp --dport 80 -j ACCEPT // 临时打开80端口
[root@xuexi-001 ~]# curl -x 192.168.5.130:80 http://111.com/123.php -I HTTP/1.1 200 OK Date: Thu, 28 Jun 2018 15:08:27 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# curl -x 192.168.5.130:80 http://111.com/123.php -I HTTP/1.1 200 OK Date: Thu, 28 Jun 2018 15:08:47 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# tail /usr/local/apache2/logs/111.com-access_log 192.168.5.130 - - [28/Jun/2018:23:08:27 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0" 192.168.5.130 - - [28/Jun/2018:23:08:47 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
网站大多元素为静态文件,如图片、css、js等,这些元素能够不用记录
将一下内容拷贝至虚拟主机配置文件 /usr/local/apache2/conf/extra/httpd-vhosts.conf
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf ErrorLog "logs/111.com-error_log" SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.jpg$" img SetEnvIf Request_URI ".*\.png$" img SetEnvIf Request_URI ".*\.bmp$" img SetEnvIf Request_URI ".*\.swf$" img SetEnvIf Request_URI ".*\.js$" img SetEnvIf Request_URI ".*\.css$" img CustomLog "logs/111.com-access_log" combined env=!img
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# curl -x 192.168.5.130:80 111.com/123.jpg1 -I HTTP/1.1 404 Not Found Date: Thu, 28 Jun 2018 15:45:29 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# tail /usr/local/apache2/logs/111.com-access_log 192.168.5.130 - - [28/Jun/2018:00:55:09 +0800] "HEAD HTTP://www.example.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:55:19 +0800] "HEAD HTTP://aabbcc.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:57:36 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 - 192.168.5.130 - - [28/Jun/2018:01:05:20 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 403 - 192.168.5.130 - - [28/Jun/2018:01:06:07 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 - comdined comdined 192.168.5.130 - - [28/Jun/2018:23:08:27 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0" 192.168.5.130 - - [28/Jun/2018:23:08:47 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0" 192.168.5.130 - - [28/Jun/2018:23:45:29 +0800] "HEAD HTTP://111.com/123.jpg1 HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@xuexi-001 ~]# curl -x 192.168.5.130:80 111.com/123.jpg -I HTTP/1.1 404 Not Found Date: Thu, 28 Jun 2018 15:47:30 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Content-Type: text/html; charset=iso-8859-1 [root@xuexi-001 ~]# tail /usr/local/apache2/logs/111.com-access_log 192.168.5.130 - - [28/Jun/2018:00:55:09 +0800] "HEAD HTTP://www.example.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:55:19 +0800] "HEAD HTTP://aabbcc.com/ HTTP/1.1" 301 - 192.168.5.130 - - [28/Jun/2018:00:57:36 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 - 192.168.5.130 - - [28/Jun/2018:01:05:20 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 403 - 192.168.5.130 - - [28/Jun/2018:01:06:07 +0800] "HEAD HTTP://111.com/asd/123/345 HTTP/1.1" 404 - comdined comdined 192.168.5.130 - - [28/Jun/2018:23:08:27 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0" 192.168.5.130 - - [28/Jun/2018:23:08:47 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0" 192.168.5.130 - - [28/Jun/2018:23:45:29 +0800] "HEAD HTTP://111.com/123.jpg1 HTTP/1.1" 404 - "-" "curl/7.29.0"
<VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.123.com ServerAlias 123.com SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.jpg$" img SetEnvIf Request_URI ".*\.png$" img SetEnvIf Request_URI ".*\.bmp$" img SetEnvIf Request_URI ".*\.swf$" img SetEnvIf Request_URI ".*\.js$" img SetEnvIf Request_URI ".*\.css$" img CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img </VirtualHost>
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf 修改 CustomLog "logs/111.com-access_log" combined env=!img 修改完后: CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
说明:
|/usr/local/apache2/bin/rotatelogs // Apache 专门进行日志切割的工具
-l // 指定按照CST 当前时间为基准,若是不指定按照UTC 美国时间
111.com-access_%Y%m%d.log // 按照时间记录 %Y%m%d 年月日命名
86400 // 按天生成 指定天天换算成秒 为86400 秒
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# ls /usr/local/apache2/logs/ 111.com-access_log abc.com-access_log access_log httpd.pid 111.com-error_log abc.com-error_log error_log ···目前尚未生成新的文件 访问: [root@xuexi-001 ~]# curl -x 192.168.5.130:80 111.com/123.php -I HTTP/1.1 200 OK Date: Thu, 28 Jun 2018 16:18:05 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 X-Powered-By: PHP/5.6.36 Content-Type: text/html; charset=UTF-8 [root@xuexi-001 ~]# ls /usr/local/apache2/logs/ 111.com-access_20180629.log 111.com-error_log abc.com-error_log error_log 111.com-access_log abc.com-access_log access_log httpd.pid
备注:
此时,须要作一个任务计划,将超过多久的日志文件进行删除。
<IfModule mod_expires.c> ExpiresActive on //打开该功能的开关 ExpiresByType image/gif "access plus 1 days" ExpiresByType image/jpeg "access plus 24 hours" ExpiresByType image/png "access plus 24 hours" ExpiresByType text/css "now plus 2 hour" ExpiresByType application/x-javascript "now plus 2 hours" ExpiresByType application/javascript "now plus 2 hours" ExpiresByType application/x-shockwave-flash "now plus 2 hours" ExpiresDefault "now plus 0 min" </IfModule>
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/gif "access plus 1 days" ExpiresByType image/jpeg "access plus 24 hours" ExpiresByType image/png "access plus 24 hours" ExpiresByType text/css "now plus 2 hour" ExpiresByType application/x-javascript "now plus 2 hours" ExpiresByType application/javascript "now plus 2 hours" ExpiresByType application/x-shockwave-flash "now plus 2 hours" ExpiresDefault "now plus 0 min" </IfModule>
说明:打开mod_expires.c 过时时间模块
[root@xuexi-001 ~]# vi /usr/local/apache2/conf/httpd.conf #LoadModule expires_module modules/mod_expires.so // 将上面这一行中的#去掉修改成: LoadModule expires_module modules/mod_expires.so [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -M |grep expir expires_module (shared)
[root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@xuexi-001 ~]# /usr/local/apache2/bin/apachectl graceful
[root@xuexi-001 ~]# curl -x192.168.5.130:80 111.com/baidu.jpg -I HTTP/1.1 200 OK Date: Thu, 28 Jun 2018 16:52:16 GMT Server: Apache/2.4.33 (Unix) PHP/5.6.36 Last-Modified: Thu, 28 Jun 2018 16:33:20 GMT ETag: "30ed-56fb64a095b87" Accept-Ranges: bytes Content-Length: 12525 Cache-Control: max-age=86400 Expires: Fri, 29 Jun 2018 16:52:16 GMT Content-Type: image/jpeg