作为程序员一定要保持良好的睡眠,才能好编程

linux 下 apache如何开启 gzip 和 静态文件缓存的

发布时间:2016-05-15

linux下,apache 如何开启gzip?

首先登录服务器,

查找 httpd.conf 这个配置文件在什么位置,如果你知道,直接运行命令

cd **/ 进入apache配置文件所在的目录。

vim httpd.conf


如果你不清楚apache安装在什么位置,那么可以使用

find / -name "httpd.conf"

找找看在什么位置

1.jpg

然后使用命令

vim httpd.conf

打开配置文件,要开启gzip需要打开 mod_deflate.so和mod_headers.so

具体做法为将 如下两句前面的#去掉:

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

如果已经去掉前边的#号,则不用管它了。


再次复制下面的代码,放在httpd.conf的最下面 或其他的<IfModule>的位置


<IfModule deflate_module>
SetOutputFilter DEFLATE
# Don’t compress images and other 
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary 
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css 
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>


看代码截图:

3.jpg


以上做完操作后,需要重新启动apache

命令:

service httpd restart

经过以上的配置,gzip是开启成功了。

可以通过火狐或谷歌的header 来查看。


4.jpg



开启静态文件缓存:

开启缓存需要开启 mod_expires.so 那么找到这个配置,把前边的# 去掉,就开启了此服务,

LoadModule expires_module modules/mod_expires.so


但还需要加上一个配置


<IfModule expires_module>

    #打开缓存

    ExpiresActive on 

    #文件缓存864000/3600/24=10天

    ExpiresByType text/css A864000

    ExpiresByType application/x-JavaScript A864000

    ExpiresByType application/javascript A864000

    ExpiresByType text/html A864000

    ExpiresByType image/jpeg A864000

    ExpiresByType image/gif A864000

    ExpiresByType image/png A864000

    ExpiresByType image/x-icon A864000

</IfModule>


这个配置文件加载哪里呢?


也是有两种方式 :

1、全部网站都缓存

  如果是全部网站都加上,那么直接编辑 

 vim httpd.conf 

把上面的代码,复制到httpd.conf这里。可以放在最后面,也可以和上边的gzip的代码放在一起。


2、单个网站加缓存

   如果是单个网站的话,直接加在一个 VirtualHost 这里,这只是对一个站点起作用。

2.jpg


ExpiresByType  是文件的MIME类型 可以直接指定过期的类型

以上做完操作后,需要重新启动apache

命令:

service httpd restart


以上两项内容配置完毕。