Nginx开启和配置Gzip压缩

Nginx开启和配置Gzip压缩,第1张

nginx 是一个高性能的 Web 服务器,合理配置nginx可以有效提高网站的响应速度。

本文介绍 nginx 的 gzip 和缓存开启配置。

gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。

Nginx的压缩输出有一组gzip压缩指令来实现。

相关指令位于 http{…} 两个大括号之间。

<pre style="box-sizing: border-boxfont-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospacefont-size: 14pxmargin-top: 0pxmargin-bottom: 1removerflow: autodisplay: blockcolor: rgb(33, 37, 41)font-style: normalfont-variant-ligatures: normalfont-variant-caps: normalfont-weight: 400letter-spacing: normalorphans: 2text-align: lefttext-indent: 0pxtext-transform: nonewidows: 2word-spacing: 0px-webkit-text-stroke-width: 0pxtext-decoration-thickness: initialtext-decoration-style: initialtext-decoration-color: initial"># 开启gzip

gzip on

gzip_min_length 1k

gzip_comp_level 6

gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png

gzip_vary on

gzip_disable "MSIE [1-6]."</pre>

关于具体的参数说明可以参考 nginx 的文档 。

<pre style="box-sizing: border-boxfont-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospacefont-size: 14pxmargin-top: 0pxmargin-bottom: 1removerflow: autodisplay: blockcolor: rgb(33, 37, 41)font-style: normalfont-variant-ligatures: normalfont-variant-caps: normalfont-weight: 400letter-spacing: normalorphans: 2text-align: lefttext-indent: 0pxtext-transform: nonewidows: 2word-spacing: 0px-webkit-text-stroke-width: 0pxtext-decoration-thickness: initialtext-decoration-style: initialtext-decoration-color: initial">location ~* ^.+.(ico|gif|jpg|jpeg|png)$ {

access_log off

expires 30d

}

location ~* ^.+.(css|js|txt|xml|swf|wav)$ {

access_log off

expires 24h

}

location ~* ^.+.(html|htm)$ {

expires 1h

}</pre>

其中的缓存时间可以自己根据需要修改。

第一步:打开IIS,启用HTTP压缩服务

右击“网站”->“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩应用程序文件”和“ 压缩静态文件”,按需要设置“临时目录”和“临时目录的最大限制”

第二步:启用web服务

第三步:修改MetaBase.xml

开始 >运行中输入 c:\windows\system32\inetsrv,找到 MeteBase.xml,先备份,在修改。(有的服务器不需要修改此文件便可以使用)

搜索 Location ="/LM/W3SVC/Filters/Compression/gzip"

仔细核对下代码:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate" 

HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 

HcCreateFlags="0" 

HcDoDynamicCompression="TRUE" 

HcDoOnDemandCompression="TRUE" 

HcDoStaticCompression="FALSE" 

HcDynamicCompressionLevel="0" 

HcFileExtensions="htm 

html 

txt" 

HcOnDemandCompLevel="10" 

HcPriority="1" 

HcScriptFileExtensions="asp 

dll 

exe" 

</IIsCompressionScheme> 

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip" 

HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 

HcCreateFlags="1" 

HcDoDynamicCompression="TRUE" 

HcDoOnDemandCompression="TRUE" 

HcDoStaticCompression="TRUE" 

HcDynamicCompressionLevel="0" 

HcFileExtensions="htm 

html 

txt" 

HcOnDemandCompLevel="10" 

HcPriority="1" 

HcScriptFileExtensions="asp 

dll 

exe" 

</IIsCompressionScheme>

替换成:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip" 

HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 

HcCreateFlags="1" 

HcDoDynamicCompression="TRUE" 

HcDoOnDemandCompression="TRUE" 

HcDoStaticCompression="TRUE" 

HcDynamicCompressionLevel="10" 

HcFileExtensions="html 

css 

js 

htm 

xml 

txt" 

HcOnDemandCompLevel="10" 

HcPriority="1" 

HcScriptFileExtensions="php 

dll" 

</IIsCompressionScheme> 

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate" 

HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 

HcCreateFlags="2" 

HcDoDynamicCompression="TRUE" 

HcDoOnDemandCompression="TRUE" 

HcDoStaticCompression="TRUE" 

HcDynamicCompressionLevel="10" 

HcFileExtensions="html 

css 

js 

htm 

xml 

txt" 

HcOnDemandCompLevel="10" 

HcPriority="1" 

HcScriptFileExtensions="php 

dll" 

</IIsCompressionScheme>

修改好以后,重启iis

然后在保存MeteBase.xml,保存好后再启动IIS。这样Gzip压缩就启用成功了。

最后,测试Gzip压缩是否成功

实现操作

1、找到并打开apache/conf目录中的httpd.conf文件

2、httpd.conf中打开deflate_Module和headers_Module模块,具体做法为将

如下两句前面的#去掉:

LoadModule

deflate_module

modules/mod_deflate.so

LoadModule

headers_module

modules/mod_headers.so

3、在httpd.conf文件底部加入如下代码配置需要压缩的文件类型:

<IfModule

deflate_module>SetOutputFilter

DEFLATE#

Don’t

compress

images

and

otherSetEnvIfNoCase

Request_URI

.(?:gif|jpe?g|png)$

no-gzip

dont-varySetEnvIfNoCase

Request_URI

.(?:exe|t?gz|zip|bz2|sit|rar)$

no-gzip

dont-varySetEnvIfNoCase

Request_URI

.(?:pdf|doc)$

no-gzip

dont-varyAddOutputFilterByType

DEFLATE

text/html

text/plain

text/xml

text/cssAddOutputFilterByType

DEFLATE

application/x-javascript</IfModule>

4、重启apache服务端

5、使用站长工具查看是否已经开启。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/316027.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存