乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      008.Nginx靜態(tài)資源

       丹楓無跡 2022-06-15 發(fā)布于北京

      一 Nginx靜態(tài)資源概述

      1.1 靜態(tài)資源類型

      Nginx作為靜態(tài)資源Web服務(wù)器部署配置, 傳輸非常高效, 常常用于靜態(tài)資源處理,請求以及動靜分離。通常非服務(wù)器動態(tài)運行生成的文件屬于靜態(tài)資源。
      類型
      種類
      瀏覽器端渲染
      HTML、CSS、JS
      圖片
      JPEG、GIF、PNG
      視頻
      FLV、MP4
      文件
      TXT及其他類型文件

      1.2 靜態(tài)資源場景

      簡單靜態(tài)站點場景:
      clipboard
      靜態(tài)站點加速場景:
      clipboard

      二 靜態(tài)資源優(yōu)化配置

      2.1 sendfile

      默認情況下,Nginx會自行處理文件傳輸,并在發(fā)送之前將文件復制到緩沖區(qū)中。啟用sendfile指令跳過了將數(shù)據(jù)復制到緩沖區(qū)的步驟,并允許將數(shù)據(jù)從一個文件描述符直接復制到另一個文件描述符。同時,為了防止一個快速連接完全占用工作進程,也可以使用sendfile_max_chunk指令限制單個sendfile()調(diào)用中傳輸?shù)臄?shù)據(jù)量。
      語法:sendfile on | off;
      默認:sendfile off;
      可配置段:http,server,location,if in location
      配置示例:
        1 location /mp3 {
        2     #...
        3     sendfile		on;
        4     sendfile_max_chunk	1m;
        5     #...
        6 }

      2.2 tcp_nopush

      將tcp_nopush指令與sendfile on;指令一起使用,可以使NGINX在sendfile()獲取數(shù)據(jù)塊之后立即在一個數(shù)據(jù)包中發(fā)送HTTP響應頭。即在sendfile開啟情況下,提高網(wǎng)絡(luò)包的"傳輸效率"。
      語法:tcp_nopush on | off;
      默認:tcp_nopush off;
      可配置段:http, server, location
      配置示例:
        1 location /mp3 {
        2     #...
        3     sendfile   on;
        4     tcp_nopush on;
        5     #...
        6 }

      2.3 tcp_nodelay

      tcp_nodelay指令允許覆蓋Nagle的算法,該算法最初設(shè)計用于解決慢速網(wǎng)絡(luò)中小數(shù)據(jù)包的問題。該算法將許多小數(shù)據(jù)包合并為一個較大的數(shù)據(jù)包,并以200毫秒的延遲發(fā)送數(shù)據(jù)包。如今,在提供大型靜態(tài)文件時,無論數(shù)據(jù)包大小如何,都可以立即發(fā)送數(shù)據(jù)。延遲也會影響在線應用程序(ssh,在線游戲,在線交易等)。默認情況下,tcp_nodelay指令設(shè)置為on,這意味著禁用了Nagle的算法。此指令僅用于keepalive連接。因此tcp_nodelay提高網(wǎng)絡(luò)包的"實時性"。
      語法:tcp_nodelay on | off;
      默認:tcp_nodelay on;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3     tcp_nodelay       on;
        4     keepalive_timeout 65;
        5     #...
        6 }

      三 靜態(tài)資源壓縮選項

      3.1 gzip壓縮配置

      Nginx將響應報文發(fā)送至客戶端之前可以啟用壓縮功能,這能夠有效地節(jié)約帶寬,并提高響應至客戶端的速度。
      語法:gzip on | off;
      默認值:gzip off;
      可配置段:http, server, location, if in location
      配置示例:
        1 location /mp3  {
        2     #...
        3     gzip	on;
        4     #...
        5 }

      3.2 gzip壓縮比配置

      語法:gzip_comp_level level;
      默認值:gzip_comp_level 1;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3     gzip	on;
        4     gzip_comp_level 6;
        5     #...
        6 }
      提示:
    • 過高的壓縮比比較耗費服務(wù)端性能。
    • 隨著壓縮級別的升高,壓縮比有所提高,但到了級別6后,很難再提高;
    • 隨著壓縮級別的升高,處理時間明顯變慢;
    • gzip很消耗cpu的性能,高并發(fā)情況下cpu達到100%。
    • 3.3 gzip壓縮協(xié)議版本配置

      語法:gzip_http_version 1.0 | 1.1;
      默認值:gzip_http_version 1.1;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3     gzip	on;
        4     gzip_comp_level 6;
        5 gzip_http_version 1.1;
        6     #...
        7 }
      提示:也可不設(shè)置,目前主流幾乎都是v1.1版本協(xié)議。

      3.4 gzip預壓縮配置

      Nginx的動態(tài)壓縮是對每個請求先壓縮再輸出,會造成服務(wù)端一定程度的CPU消耗,因此可以利用nginx模塊Gzip Precompression模塊。同時nginx默認安裝ngx_http_gzip_module,采用的是chunked方式的動態(tài)壓縮,靜態(tài)壓縮需要使用http_gzip_static_module模塊,進行pre-compress。對需要壓縮的文件,直接讀取已經(jīng)壓縮好的文件(文件名為加.gz),而不是動態(tài)壓縮,對于不支持gzip的請求則讀取原文件,即預壓縮。
      語法:gzip_static on | off | always;
      默認值:gzip_static off;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3 gzip_static  on;
        4 gzip_proxied expired no-cache no-store private auth;
        5     #..
        6 }
      注意:
      文件可以使用gzip命令來進行壓縮,或任何其他兼容的命令,建議壓縮文件和原始文件的修改日期和時間保持一致。
      gzip_static配置優(yōu)先級高于gzip。
      開啟nginx_static后,對于任何文件都會先查找是否有對應的gz文件。
      gzip_types設(shè)置對gzip_static無效。
      gzip static默認適用HTTP 1.1。

      3.5 gzip_buffers壓縮緩沖配置

      設(shè)置系統(tǒng)獲取幾個單位的緩存用于存儲gzip的壓縮結(jié)果數(shù)據(jù)流。如果沒有設(shè)置,默認值是申請跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲gzip壓縮結(jié)果。
      語法:gzip_buffers number size;
      默認值:gzip_buffers 32 4k|16 8k;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3 gzip_buffers 32 4k
        4     #...
        5 }
      示例解釋:如上32 4K表示按照內(nèi)存頁(one memory page)大小以4K為單位(即一個系統(tǒng)中內(nèi)存頁為4K),申請32倍的內(nèi)存空間。

      3.6 gzip_disable例外配置

      針對特定的情況,排除在壓縮之外,即不壓縮。
      語法:gzip_disable regex ...;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3 gzip on;
        4 gzip_buffers 4 16k;
        5 gzip_comp_level 2;
        6 gzip_disable "MSIE [1-6]\.";
        7     #...
        8 }
      示例釋義:關(guān)閉IE6及以下的瀏覽器壓縮。

      3.7 gzip_min_length特定的大小壓縮配置

      當返回內(nèi)容大于此值時才會使用gzip進行壓縮,單位為字節(jié),當值為0時,所有頁面都進行壓縮。
      語法:gzip_min_length length;
      默認值:gzip_min_length 20;
      可配置段:http, server, location
      配置示例:
        1 location /mp3  {
        2     #...
        3 gzip on;
        4 gzip_buffers 4 16k;
        5 gzip_min_length 1k;
        6 gzip_comp_level 2;
        7 gzip_disable "MSIE [1-6]\.";
        8     #...
        9 }

      3.8 gzip_types壓縮類型配置

      語法:gzip_types mime-type ...;
      默認值:gzip_types text/html;
      可配置段:http, server, location
        1 location /myhome  {
        2     #...
        3 gzip on;
        4 gzip_min_length 1k;
        5 gzip_buffers 4 16k;
        6 gzip_comp_level 2;
        7 gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
        8 gzip_disable "MSIE [1-6]\.";
        9     #...
       10 }

      3.9 gzip_proxied反向代理壓縮配置

      Nginx作為反向代理的時候啟用,開啟或者關(guān)閉后端服務(wù)器返回的結(jié)果,匹配的前提是后端服務(wù)器必須要返回包含"Via"的header頭。
      語法:gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
      默認值:gzip_proxied off;
      可配置段:http, server, location
      參數(shù)釋義:
    • off:關(guān)閉所有的代理結(jié)果數(shù)據(jù)的壓縮
    • expired:如果header頭中包含 "Expires" 頭信息,啟用壓縮;
    • no-cache:如果header頭中包含 "Cache-Control:no-cache" 頭信息,啟用壓縮;
    • no-store:如果header頭中包含 "Cache-Control:no-store" 頭信息,啟用壓縮;
    • private:如果header頭中包含 "Cache-Control:private" 頭信息,啟用壓縮;
    • no_last_modified:如果header頭中不包含 "Last-Modified" 頭信息,啟用壓縮;
    • no_etag:如果header頭中不包含 "ETag" 頭信息,啟用壓縮;
    • auth:如果header頭中包含 "Authorization" 頭信息,啟用壓縮;
    • any:無條件啟用壓縮。
    • 四 靜態(tài)資源壓縮配置

      4.1 創(chuàng)建站點目錄

      [root@nginx ~]# mkdir /usr/share/nginx/gzip/
      上傳用于測試的html、png、css等文件,提前查看文件大小。
      clipboard

      4.2 配置虛擬主機

        1 [root@nginx ~]# vi /etc/nginx/conf.d/gzip.conf
        2 server {
        3     listen 80;
        4     server_name  gzip.;
        5     sendfile on;
        6     access_log  /var/log/nginx/gzip.access.log  main;
        7     error_log   /var/log/nginx/gzip.error.log  warn;
        8     location / {
        9         root /usr/share/nginx/gzip;
       10         index  index.html;
       11 
       12         gzip on;
       13         gzip_min_length 1k;
       14         gzip_buffers 4 16k;
       15         gzip_http_version 1.1;
       16         gzip_comp_level 2;
       17         gzip_disable "MSIE [1-6]\.";
       18         gzip_types text/plain application/json application/x-javascript application/javascript text/css application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif imag
       19 e/png;
       20     }
       21 }
        1 [root@nginx ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置文件
        2 [root@nginx ~]# nginx -s reload			#重載配置文件

      4.3 確認驗證

      使用curl測試站點是否啟用gzip:
        1 [root@imxhy ~]# curl -I -H "Accept-Encoding: gzip, deflate" "http://gzip./css/test.css"
        2 [root@imxhy ~]# curl -I -H "Accept-Encoding: gzip, deflate" "http://gzip./images/test.jpeg"
        3 [root@imxhy ~]# curl -I -H "Accept-Encoding: gzip, deflate" "http://gzip./js/test.js"
      clipboard
      也可通過chrome瀏覽器,開啟F12開發(fā)者模式后訪問:http://gzip./css/test.css
      clipboard
      提示:同時可通過將gzip_min_length設(shè)置為500k再進行觀察,可知只有test.png和test.js,兩個大于500k的文件才會被壓縮,css不會進行壓縮。
      clipboard
      參考:https://www.cnblogs.com/xzkzzz/p/9224358.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多