<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:說一下Nginx靜態(tài)壓縮和代碼壓縮

          共 5505字,需瀏覽 12分鐘

           ·

          2023-01-12 15:52

          點(diǎn)擊關(guān)注公眾號(hào):互聯(lián)網(wǎng)架構(gòu)師,后臺(tái)回復(fù) 2T獲取2TB學(xué)習(xí)資源!

          上一篇:Alibaba開源內(nèi)網(wǎng)高并發(fā)編程手冊(cè).pdf

          基于目前大部分的應(yīng)用,都使用了前后端分離的框架,vue的前端應(yīng)用,也是十分的流行。不知道大家有無(wú)遇到這樣的問題:

          隨著前端框架的頁(yè)面,功能開發(fā)不斷的迭代;安裝的依賴,不斷的增多;

          這樣導(dǎo)致的問題,就是我們的前端框架,會(huì)變得十分龐大,打包出來(lái)的dist目錄會(huì)變得很大了喔?。?!

          這樣就會(huì)導(dǎo)致一個(gè)問題:首次訪問應(yīng)用,會(huì)變得很慢?。?!

          這確實(shí)是一個(gè)嚴(yán)重的問題!??!T_T

          對(duì)于這個(gè)問題,咋們今天就從代碼壓縮+nginx靜態(tài)資源壓縮,兩個(gè)方面進(jìn)行研究解決!??!

          nginx靜態(tài)資源動(dòng)態(tài)壓縮

          • nginx開啟gzip壓縮
          server {
                  listen       80;
                  listen  [::]:80;
                  server_name  localhost;
                  server_tokens off;

                  # 開啟gzip壓縮
                  gzip on;
                  gzip_disable "msie6";
                  gzip_vary on;
                  gzip_proxied any;
                  gzip_comp_level 6;
                  gzip_buffers 16 8k;
                  gzip_http_version 1.1;
                  gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript;
                  
                  #llsydn 前端
                  location /jxbp {           
                       alias  /opt/llsydn/jxbp;
                       index index.html;
                       try_files $uri $uri/ /dist/index.html;
                  }
           }      

          然后重啟nginx:nginx -s reload

          看看是否已經(jīng)生效?。。?/p>

          • 壓縮的效果圖
          • 沒有壓縮的效果圖

          從上面兩張圖可以看到:

          • 第一張經(jīng)過壓縮:finish時(shí)間為2.36s,transferred為7.6MB
          • 第二張沒有壓縮:finish時(shí)間為6.32s,transferred為24.6MB

          很明顯,經(jīng)過了nginx的靜態(tài)資源壓縮,訪問速度提高了,顯著的?。。?/p>

          看到這,咋們會(huì)有這樣的一個(gè)問題,這壓縮都是nginx干的活,那當(dāng)訪問量變大,那對(duì)于nginx的壓力,是十分大的,畢竟都是動(dòng)態(tài)壓縮的?。?!

          那有無(wú)解決方法呢?

          nginx靜態(tài)資源動(dòng)態(tài)壓縮的原理,無(wú)非就幫我們將js、css等文件,壓縮為一個(gè).gz文件,然后傳輸給前端瀏覽器,進(jìn)行解析。說到這,咋們不禁會(huì)說:那咋們先將js、css等文件,生成對(duì)應(yīng)的.gz文件,不就不需要nginx動(dòng)態(tài)壓縮了嘛?好像是這么一回事!??!

          天才呀!?。?/p>

          nginx靜態(tài)資源靜態(tài)壓縮

          • 將js、css等文件,生成對(duì)應(yīng)的.gz文件

          這個(gè),就可以借助一些依賴進(jìn)行處理了:compression-webpack-plugin

          安裝依賴:

          npm install compression-webpack-plugin -D
          • vue.config.js
          const CompressionWebpackPlugin = require('compression-webpack-plugin')
          const productionGzipExtensions = ['js''css']
          vueConfig.configureWebpack.plugins.push(new CompressionWebpackPlugin({
              test:/.js$|.html$|.\css/, // 匹配文件名
              threshold: 1024, // 對(duì)超過1k的數(shù)據(jù)壓縮
              deleteOriginalAssets: false // 不刪除源文件
          }))

          打包:

          npm run build

          可以看到,已經(jīng)幫我們生成對(duì)應(yīng)的.gz文件了!??!

          • nginx配置

          在上面的基礎(chǔ)上,再加上

          gzip_static on
          • nginx得安裝下面得模塊:
          ngx_http_gzip_module模塊
          ngx_http_gzip_static_module模塊
          ngx_http_gunzip_module模塊
          • nginx開啟gzip壓縮
          server {
                  listen       80;
                  listen  [::]:80;
                  server_name  localhost;
                  server_tokens off;

                  # 開啟gzip壓縮
                  gzip on;
                  gzip_static on
                  gzip_disable "msie6";
                  gzip_vary on;
                  gzip_proxied any;
                  gzip_comp_level 6;
                  gzip_buffers 16 8k;
                  gzip_http_version 1.1;
                  gzip_types text/plain application/css text/css application/xml text/javascript application/javascript application/x-javascript;
                  
                  #llsydn 前端
                  location /jxbp {           
                       alias  /opt/llsydn/jxbp;
                       index index.html;
                       try_files $uri $uri/ /dist/index.html;
                  }
           }      

          然后重啟nginx:nginx -s reload

          看看是否已經(jīng)生效?。?!

          • 靜態(tài)壓縮
          • 動(dòng)態(tài)壓縮
          好了,nginx的靜態(tài)壓縮,就到這里了?。。?/section>

          原文:juejin.cn/post/7101663374957608974

          最后,關(guān)注公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師,在后臺(tái)回復(fù):2T,可以獲取我整理的 Java 系列面試題和答案,非常齊全。


          正文結(jié)束


          推薦閱讀 ↓↓↓

          1.再見了 ,Shiro!

          2.從零開始搭建創(chuàng)業(yè)公司后臺(tái)技術(shù)棧

          3.程序員一般可以從什么平臺(tái)接私活?

          4.流程引擎的架構(gòu)設(shè)計(jì)

          5.為什么國(guó)內(nèi) 996 干不過國(guó)外的 955呢?

          6.中國(guó)的鐵路訂票系統(tǒng)在世界上屬于什么水平?                        

          7.15張圖看懂瞎忙和高效的區(qū)別!

          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区二区三区韩国av夜夜骚 | 免费看日韩无码AV中文字幕 | 大香蕉网|伊人在线大香蕉|大香蕉|大香蕉网站 | 日本18禁黄网站 | 俺就色|