網站首頁 編程語言 正文
我們知道做好負載均衡對網站的正常運行,用戶體驗相當重要。在負載均衡中有一個必須要做的事情就是給服務器開啟GZIP壓縮功能,對用戶請求的頁面進行壓縮處理,以達到節省網絡帶寬,提高網站速度的作用。
GZIP是若干文件壓縮程序的簡稱,通常指GNU計劃的實現,此處的GZIP代表的就是GUN ZIP,這也是HTTP1.1協議定義的兩種壓縮方法中最常用的一種壓縮方法,客戶端瀏覽器大都支持這種壓縮格式。接下來,DNSLA將介紹apache、IIS、nginx 這些現在流行的web服務器如何開啟GZIP壓縮的方法。
Apache如何開啟GZIP功能
Apache開啟GZIP要看查看是否已經開啟mod_deflate模塊,如果沒有則需要先加載,在配置文件httpd.conf中將
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so
前面的#號去掉。DNSLA建議,如果對apache的配置文件不太懂的客戶在修改配置文件之前對配置文件進行備份。
開啟模塊后,在httpd.conf配置文件的最下面空白處添加一下內容:
<IfModule mod_deflate.c> # 告訴 apache 對傳輸到瀏覽器的內容進行壓縮 SetOutputFilter DEFLATE # 壓縮等級 9 DeflateCompressionLevel 9 </IfModule>
這樣就能對所有文件進行 gzip 壓縮了。壓縮等級是個 1-9 之間的整數,取值范圍在 1(最低) 到 9(最高)之間,不建議設置太高,雖然有很高的壓縮率,但是占用更多的CPU資源。
實際開發中我們并不需要對所有文件進行壓縮,比如我們無需對圖片文件進行gzip壓縮,因為圖片文件(一般為jpg、png等格式)本身已經壓縮過了,再進行gzip壓縮可能會適得其反(詳見圖片要啟用gzip壓縮嗎?絕對不要!,背景圖片千萬不要gzip壓縮,尤其是PNG),類似的還有 PDF 以及音樂文件。所以我們可以設置過濾指定文件或者對指定文件進行壓縮。
比如我們要對圖片等特殊文件不進行 gzip 壓縮處理:
<IfModule mod_deflate.c> # 告訴 apache 對傳輸到瀏覽器的內容進行壓縮 SetOutputFilter DEFLATE # 壓縮等級 9 DeflateCompressionLevel 9 #設置不對后綴gif,jpg,jpeg,png的圖片文件進行壓縮 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary </IfModule>
或者指定文件格式進行壓縮:
<IfModule mod_deflate.c> # 壓縮等級 9 DeflateCompressionLevel 9 # 壓縮類型 html、xml、php、css、js AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php AddOutputFilter DEFLATE js css </IfModule>
其中DeflateCompressionLevel
的意思是壓縮等級,共分為1-9,9級為最高,不建議使用太高的壓縮比,這樣會對CPU產生太大的負擔。
IIS如何開啟GZIP功能
打開IIS管理工具,在右鍵網站打開網站屬性,在服務選項卡中開啟HTTP壓縮,不建議選中壓縮應用程序文件,但一定要選上壓縮靜態文件,不然就等于沒有壓縮,達不到負載均衡了。然后選中我那個站下面那個服務器擴展,新建一個服務器擴展,名字為GZIP,下面的添加文件路徑為:c:\windows\system32\inetsrv\gzip.dll,然后啟用這個擴展。DNSLA提醒大家,還沒結束,第三步是,我們要修改配置文件,在配置文件之前要停止IIS服務,(DNSLA提醒大家一定要先關閉IIS服務)打開C:\Windows\System32\inetsrv\MetaBase.xml,這個文件很大,找到下面一段信息:
<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>
修改這個文件是要增加一些要進行壓縮的文件后綴,其中 HcFileExtensions 是靜態文件的擴展名,增加 js 和 css 等;HcScriptFileExtensions 為動態文件的擴展名,增加 aspx,HcDynamicCompressionLevel改成9,(0-10,6是性價比最高的一個)。
然后需要重啟一下IIS服務即可。
Nginx如何開啟GZIP功能
相對apache 和 IIS nginx開啟GZIP簡單很多,只需要打開配置文件 nginx.conf找到gzip on 把前面的注釋符號#去掉即可開啟GZIP服務。然后配置GZIP即可。
下面是一個相對優化不錯的配置,DNSLA建議使用。
Gzip on; gzip_min_length 1024; gzip_buffers 4 8k; gzip_types text/plain application/x-javascript text/css application/xml;
原文鏈接:https://juejin.cn/post/6844903602822070280
相關推薦
- 2022-04-21 C#使用Chart繪制曲線_C#教程
- 2023-03-20 C#中程序自刪除實現方法_C#教程
- 2022-06-08 Spring Cloud Ribbon 負載均衡策略
- 2022-08-21 Python?Map函數保姆級使用教程_python
- 2022-12-13 python3.x?zip用法小結_python
- 2022-08-30 MongoDB數據庫權限管理詳解_MongoDB
- 2022-06-08 報錯:No fallback instance of type class**解決辦法
- 2022-07-28 Redis特殊數據類型Geospatial地理空間_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支