Nginx伺服器的壓縮功能和快取功能

2021-10-03 17:03:24 字數 3481 閱讀 5873

在nginx伺服器配置檔案中可以通過配置gzip的使用,可以配置在http塊,server 塊或者location塊中設定,nginx伺服器可以通過ngx_http_gzip_module模組、ngx_http_static_module 模組功能ngx_http_gunzip_module模組對這些指令進行分析和處理。

1、gzip:

用於開啟或者關閉gzip壓縮的功能,用法如下

gzip on  | off ; #預設為off
2、gzip_buffers:

用於指定gzip功能壓縮檔案時使用的快取空間的大小,語法結構為:

gzip_buffers numner | size ;

number #指定nginx伺服器需要向伺服器申請的快取空間的個數

size #指定每個快取空間的大小,從nginx

0.7.8開始,預設number * siez的的值為128,其中size取系統中記憶體頁一頁的大小,為4k或者8k等

gzip_buffers 32

4k |

128k;

3、gzip_comp_level

指定gzip壓縮級別,級別為1-9,預設為1,級別越高壓縮率越高即壓縮後的檔案越小,但是越占用cpu,壓縮率越小壓縮後的檔案越大,但是節約cpu。

gzip_comp_level  4;  #推薦先設定為中間的值,比如4或者5
4、gzip_disbale

針對不同客戶端發起的請求進行有選擇的開啟或關閉gzip命令,後面跟瀏覽器的名稱,用法如下:

gzip_disable msie[1-

6]\. #使用正規表示式可以匹配uc字串中msie1-

6 的瀏覽器,這三個瀏覽器在發起請求後nginx將不進行資料報的壓縮。

5、gzip_http_verson

早期的一些瀏覽器或者http客戶端可能不支援gzip壓縮,因此有客戶有時候會看到亂碼,那是應為客戶端無法進行解壓,因此可以根據不同的http協議版本進行選擇性的開啟或關閉gzip功能,用法如下:

; #對使用htto協議1.0和1.1的請求進行壓縮6、gzip_min_length

設定最少壓縮的資料報大小,小於此值的資料報將不被壓縮,因為大量的小的資料壓縮後沒有明顯的效果還占用了cpu的資源,因此可以設定最少多大的資料才進行壓縮,用法如下:

gzip_min_length 1024

; #預設為20,建議設定位1kb,如果設定為0則表示壓縮全部資料報。

7、gzip_proxine

在nginx 伺服器作為反向**的時候有效,用於設定nginx 伺服器是否對後端返回的結果進行gzip壓縮,用法如下:

gzip_proxied off | any; #off為關閉,any為壓縮所有後端伺服器返回的資料。
8、gzip_types

設定nginx伺服器可以根據響應頁面的型別進行選擇性的開啟或關閉gzip功能,用法如下:

9、gzip_vary

用於設定是否在使用gzip功能時傳送帶有"vary:accept-encoding" 頭域的響應頭部,該頭域的主要功能時要告訴客戶端資料已經在伺服器進行了壓縮,預設設定為off,用法如下:

gzip_vary on| off;  #預設為off

還可以使用nginx 配置的add_header指令強制在nginx伺服器的響應頭部新增「vary:accept-encoding」也可以實現相同的效果。

1、gzip_static

gzip_static off | on | always; #on為開啟並檢查客戶端瀏覽器是否中吃gzip壓縮功能,off為關閉,always一直傳送gzip壓縮檔案,而不檢查瀏覽器是否支援gzip壓縮
注:這是乙個可選模組,如果要使用,必須在編譯nginx時新增–with-http_gzip_static_module編譯,與該模組有關的 指令與ngx_http_gzip_module的模組使用方法是一致的,本模組有gzip_static、gzip_http_version、gzip_proxied、gzip_disable和gzip_vary等。

1、gunzip

設定nginx伺服器對不支援gzip的客戶端返回解壓後的資料,如果客戶的瀏覽器支援壓縮還仍然返回壓縮的後的資料,及可以同時響應支援gzip的瀏覽器程序壓縮,有可以響應不支援gzip的瀏覽器。

gunzip on|off ;#on為開啟off為關閉
2、gunzip_buffers #用於設定nginx伺服器解壓gzip檔案時候使用的快取空間大小的,用法如下:

gunzip_buffers number size; #number為nginx伺服器向系統向系統申請快取空間的個數,size為每個空間的大小,單位為k,預設情況下number * size的大小為128k,其中size 的值取系統記憶體頁一頁的大小為4kb或者8kb即可,用法如下:

gunzip_buffers 32

4k |

168k; #與ngx_http_gzip_module模組下的使用方法一致。

注:這是乙個可選模組,如果要使用需要在nginx 編譯安裝的時候使用–with-http_gunzip_module 指令進行編譯

1.memcached快取資料庫常用資料。

2.xcache快取php編譯的結果,可以在多個程序之間共享xcode結果。

3.nginx的快取是快取opcode處理後的結果,避免客戶端請求同乙個頁面而導致程式每次都處理一下,即再訪問同乙個頁面,直接使用處理後的快取即可直接返回。

1.正向**:工作在使用者前端,使用者請求的所有內容都經過**伺服器。

2.反向**:工作在伺服器前端,只**請求次伺服器的客戶端請求,被其**的伺服器叫做"**伺服器"或者"上游伺服器"。

nginx的gzip開啟不成功,一般會存在兩個問題:

1.因為http版本的問題,早期的一篇部落格已經分析了解決辦法,gzip_proxied any;

另外如果nginx無法開啟對js的壓縮,可參看下面配置,是可用的

gzip  on;

gzip_min_length 1k;

gzip_buffers 4 16k;

nginx伺服器的壓縮功能和快取功能 :

Nginx壓縮模組的壓縮功能

nginx gzip模組類似於apach的mod deflate壓縮功能,依賴ngx http gzip module模組。壓縮配置 gzip on 開啟起壓縮功能 gzip min length 1k 設定允許亞索頁面的最小位元組數,頁面位元組數從header頭的content length中獲取...

Nginx伺服器的Gzip壓縮

gzip on off gzip buffers number size number為伺服器向系統申請快取空間的個數 size 指定每個快取空間的大小 size值可取系統記憶體頁一頁的大小。gzip comp level level gzip disable regex regex根據客戶端的瀏覽...

PHP的打包壓縮功能

filename www files temp.zip 複製 zip new ziparchive 複製 zip open filename,ziparchive create 開啟乙個zip壓縮包,不存在建立 複製 current file www files a.jpg 源檔名 target f...