您好,登錄后才能下訂單哦!
本篇內容主要講解“Nginx動態壓縮與靜態壓縮怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Nginx動態壓縮與靜態壓縮怎么實現”吧!
Nginx 中配置前端的 gzip 壓縮,有兩種思路:
動態壓縮 Vue 還是使用普通的打包編譯后的文件,將前端編譯打包后的文件拷貝到 Nginx 的 html 目錄下,然后訪問 nginx:http://192.168.91.129
確保 nginx 運行成功后,接下來對 nginx 進行配置:
gzip on; # 開啟 gzip
gzip_min_length 2k;# 超過 2kb 進行壓縮
gzip_disable msie6; # ie6 不適用 gzip
gzip_types text/css application/javascript text/javascript image/jpeg image/png image/gif; # 需要處理的文件
配置完成后,重啟 Nginx:
./nginx -s reload
啟動成功后,再去訪問前端頁面,就可以看到壓縮效果了。
上面的動態壓縮有一個問題,就是每次請求響應的時候都要壓縮,其實都是相同的文件,總是壓縮有點浪費資源。
我們可以提前將文件壓縮好,就保存在服務端,需要用的時候直接返回,就會方便很多。
這需要我們首先在前端安裝壓縮插件:
npm install compression-webpack-plugin -D
安裝成功之后,接下來在 vue.config.js 中進行配置:
const CompressionPlugin = require("compression-webpack-plugin")
module.exports = {
devServer: {
host: 'localhost',
port: 8080,
proxy: proxyObj
},
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
return {
plugins: [
new CompressionPlugin({
test: /\.js$|\.html$|\.css/,
threshold: 1024,
deleteOriginalAssets: false
})
]
}
}
}
}
配置完成后,再次執行打包命令 vue-cli-service build
。這次打包完成后,我們可以在 js 目錄下看到 .gz 文件,如下:
接下來將文件上傳到 Nginx 服務器,然后對 Nginx 重新進行編譯打包。想讓 Nginx 返回已經壓縮好的文件,需要用到 Nginx 中的 http_gzip_static_module 模塊,這個模塊可以發送以 .gz
作為文件擴展名的預壓縮文件,所以我們要對 Nginx 重新進行編譯打包:
./configure --with-http_gzip_static_module
make
make install
然后在 Nginx 配置文件中開啟 gzip_static,如下:
gzip_static on;
注意,開啟了 gzip_static 后,gzip_types 就失效了,所以也沒必要配置這個屬性了。
配置完成后,重啟 Nginx,再去訪問,查看瀏覽器日志,就會發現 gzip 已經生效了。
「注意」
靜態壓縮返回的 gzip 壓縮文件都是提前準備好的,沒有 .gz 格式的文件就會自動返回原文件。這是一種和動態壓縮不同的響應策略。動態壓縮是根據 Nginx 中的配置,超過配置的大小就會自動進行壓縮。
到此,相信大家對“Nginx動態壓縮與靜態壓縮怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。