5月30日任务

时间:2022-06-07 12:57:43



11.24 静态元素过期时间


11.22 访问日志不记录静态文件

打开一个网页(这里用的是firefox),按下F12就可以看到网页的有关信息

5月30日任务选择网络项,F5刷新网页就可以看到如下信息

5月30日任务

这里面的每个图片都是一个请求,如果都记录到日志里,既占用磁盘io,又占用磁盘空间,读起来又没什么用,所以有必要把这些静态文件排除掉

具体步骤

1.编辑配置文件

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

在Errorlog 下面添加一下几行内容

   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  //img是一个标记
    CustomLog "logs/111.com-access_log" combined env=!img   //记录非img的日志

5月30日任务

检查语法重新加载

#/usr/local/apache2.4/bin/apachectl -t

# /usr/local/apache2.4/bin/apachectl graceful

可以看到日志里并未记录访问jpg的信息,而记录了jpg1的信息

5月30日任务

上传一个图片来试验一下

#rz    //上传电脑上的图片   

5月30日任务

代码200正常访问,但日志没有记录


11.23访问日志切割

日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除酒店日志文件

1.编辑虚拟主机配置文件,改成如下:

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_log_%Y%m%d 86400"

5月30日任务

rotatelogs是apache自带的一个日志切割工具 

  -l 是以当前系统的时间(CST)为基准,不指定则以GMT时间为基准

logs/111.com-access_log_%Y%m%d是指定日志的名字,根据时间日期自动的变化    

86400一天的秒数,也就是说每天切割一次


2.修改完配置,检查语法重新加载

# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful


3.访问一下网页

5月30日任务

会看到日志文件夹中多了一个111.com-access_log_20180531文件

# ls /usr/local/apache2.4/logs/

5月30日任务


11.24静态元素过期时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了

可以节省服务器带宽,又可以提高用户的访问速度。但是如果网页改动了一些信息,从缓存中加载就有可能得不到最新的内容。

1.编辑配置文件,增加以下内容

<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>

5月30日任务

2.检查语法重新加载

5月30日任务

3.检查一下,expaire模块是否打开

# /usr/local/apache2.4/bin/apachectl -M |grep expire   //这里没有匹配到

# vim /usr/local/apache2.4/conf/httpd.conf   //编辑主配置文件,去掉注释

5月30日任务

5月30日任务

这就加载到expires模块了,然后检查语法,重新加载。

4.试验

打开网页,F12 可以看到该文件过期时间,    GMT时间(格林尼治标准时间),过期时间正好24小时


5月30日任务


PS:CTRL+F5强制刷新,从服务器重新加载页面