nginx 靜態(tài)資源web服務(wù)(10)

這篇博客主要介紹什么是靜態(tài)資源。nginx將圖片,文件等類型壓縮來(lái)減少http請(qǐng)求數(shù)來(lái)達(dá)到優(yōu)化前端性能,可以在一定程度上能減少web服務(wù)器的壓力

1.靜態(tài)資源類型

前端向后臺(tái)服務(wù)器進(jìn)行請(qǐng)求,一般分為兩種靜態(tài)請(qǐng)求動(dòng)態(tài)請(qǐng)求。靜態(tài)請(qǐng)求常見(jiàn)列子客戶端請(qǐng)求圖片,css,js,html文件等。動(dòng)態(tài)請(qǐng)求是需要服務(wù)進(jìn)行動(dòng)態(tài)運(yùn)算,封裝數(shù)據(jù)然后在返回給客戶端。

[圖片上傳失敗...(image-c748f4-1548043362057)]

靜態(tài)類型 種類
瀏覽器端渲染 HTML、CSS、JS
圖片 JPEG、GIF、PNG
視頻 FLV、MPEG
文件 TXT、等任意下載文件

2.靜態(tài)資源服務(wù)場(chǎng)景cdn

[圖片上傳失敗...(image-51e27c-1548043362057)]

CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。CDN是構(gòu)建在網(wǎng)絡(luò)之上的內(nèi)容分發(fā)網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過(guò)中心平臺(tái)的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問(wèn)響應(yīng)速度和命中率。

3.ngx_http_gzip_module

1.gzip

啟用或禁用gzipping響應(yīng)。

Syntax: gzip on | off;
Default: gzip off;
Context: http, server, location, if in location

2.gzip_buffers

設(shè)置用于壓縮響應(yīng)的緩沖區(qū)的數(shù)量和大小。默認(rèn)情況下,緩沖區(qū)大小等于一個(gè)內(nèi)存頁(yè)面。這是4K或8K,具體取決于平臺(tái)。

Syntax: gzip_buffers number size;
Default: gzip_buffers 32 4k|16 8k;
Context: http, server, location

3.gzip_comp_level

設(shè)置響應(yīng)的gzip壓縮級(jí)別。可接受的值范圍為1到9。

Syntax: gzip_comp_level level;
Default: gzip_comp_level 1;
Context: http, server, location

4.gzip_disable

對(duì)具有與任何指定正則表達(dá)式匹配的User-Agent標(biāo)頭字段的請(qǐng)求禁用gzipping響應(yīng)。

Syntax: gzip_disable regex ...;
Default: —
Context: http, server, location

5.gzip_http_version

設(shè)置壓縮響應(yīng)所需的最低HTTP請(qǐng)求版本。

Syntax: gzip_http_version 1.0 | 1.1;
Default: gzip_http_version 1.1;
Context: http, server, location

6.gzip_min_length

設(shè)置將被gzip壓縮的響應(yīng)的最小長(zhǎng)度。長(zhǎng)度僅由“Content-Length”響應(yīng)頭字段確定。

Syntax: gzip_min_length length;
Default: gzip_min_length 20;
Context: http, server, location

7.gzip_proxied

根據(jù)請(qǐng)求和響應(yīng)啟用或禁用對(duì)代理請(qǐng)求的響應(yīng)的gzipping。代理請(qǐng)求的事實(shí)由“Via”請(qǐng)求頭字段的存在確定。該指令接受多個(gè)參數(shù):

Syntax: gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
Default: gzip_proxied off;
Context: http, server, location
參數(shù) 說(shuō)明
off 禁用所有代理請(qǐng)求的壓縮,忽略其他參數(shù)
expired 如果響應(yīng)頭包含“Expires”字段,其值為禁用緩存,則啟用壓縮
no-cache 如果響應(yīng)頭包含帶有“no-cache”參數(shù)的“Cache-Control”字段,則啟用壓縮
no-store 如果響應(yīng)頭包含帶有“no-store”參數(shù)的“Cache-Control”字段,則啟用壓縮
private 如果響應(yīng)頭包含帶有“private”參數(shù)的“Cache-Control”字段,則啟用壓縮
no_last_modified 如果響應(yīng)頭不包含“Last-Modified”字段,則啟用壓縮
no_etag 如果響應(yīng)頭不包含“ETag”字段,則啟用壓縮
auth 如果請(qǐng)求標(biāo)頭包含“授權(quán)”字段,則啟用壓縮
any 為所有代理請(qǐng)求啟用壓縮

8.gzip_types

除了“text / html”之外,還允許對(duì)指定的MIME類型進(jìn)行g(shù)zipping響應(yīng)。特殊值“*”匹配任何MIME類型(0.8.29)。始終壓縮“text / html”類型的響應(yīng)。

Syntax: gzip_types mime-type ...;
Default: gzip_types text/html;
Context: http, server, location

9.gzip_vary

如果指令gzip,gzip_static或gunzip處于活動(dòng)狀態(tài),則啟用或禁用插入“Vary:Accept-Encoding”響應(yīng)頭字段。

Syntax: gzip_vary on | off;
Default: gzip_vary off;
Context: http, server, location

4.示例配置

1.圖片配置

location ~ .*\.(jpg|gif|png)$ {
    root  /opt/app/code/images;
    gzip on;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    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;
}

2.文件下載

location ~ .*\.(txt|xml)$ {
    root  /opt/app/code/doc;
    gzip on;
    gzip_http_version 1.1;
    gzip_comp_level 1;
    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;
}

3.預(yù)讀gzip功能

location ~ ^/download {
    root /opt/app/code;
    gzip_static on;
    tcp_nopush on;  
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《老男孩Linux運(yùn)維》筆記 隱藏Nginx軟件版本號(hào) 一般來(lái)說(shuō),軟件的漏洞都和版本有關(guān)。因此要盡量隱藏對(duì)訪問(wèn)用戶...
    Zhang21閱讀 3,882評(píng)論 0 28
  • 原文地址: https://blog.wangriyu.wang/2018/05-HTTP2.html 維基百科關(guān)...
    魚(yú)_樂(lè)閱讀 59,441評(píng)論 6 83
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,947評(píng)論 0 9
  • I/O模型Nginx介紹Nginx的安裝和目錄結(jié)構(gòu)Nginx的配置Nginx的編譯安裝 一、I/O模型 (一)I/...
    哈嘍別樣閱讀 968評(píng)論 0 4
  • I/O模型: 阻塞型、非阻塞型、復(fù)用型、信號(hào)驅(qū)動(dòng)型、異步 同步/異步:關(guān)注消息通知機(jī)制 消息通知:同步:等待對(duì)方返...
    Net夜風(fēng)閱讀 2,116評(píng)論 0 1

友情鏈接更多精彩內(nèi)容