vue cli 3 h 5 Nginxと組み合わせてgizpとhttp 2をオンにして初回ロード速度を最適化
11921 ワード
前言:
最近vue書き込みプロジェクトを導入しましたが、会社のサーバーの帯域幅が小さいため、最初のロード時間がかなり長く、体験があまりよくありません.そこで、関連資料を探して、いくつかの最適化を行いました.効果は悪くありません.
1.Vueは構築時にGzip圧縮にパッケージ化する compression-webpack-plugin をインストール vueを構成する.config.js
2.サーバーNginxがgzip圧縮構成を開く
3.サーバNginxがhttp 2構成を開く
完全な構成は次のとおりです.
参照先:
1. vue cli3.x gzipを開き、速度2を最適化する.高性能Webサイト構築-フロントエンドのパフォーマンス最適化(Vueヘッダのロード時間最適化詳細案付)
最近vue書き込みプロジェクトを導入しましたが、会社のサーバーの帯域幅が小さいため、最初のロード時間がかなり長く、体験があまりよくありません.そこで、関連資料を探して、いくつかの最適化を行いました.効果は悪くありません.
1.Vueは構築時にGzip圧縮にパッケージ化する
npm install compression-webpack-plugin --save-dev
// compression-webpack-plugin
const CompressionWebpackPlugin = require('compression-webpack-plugin');
//
const productionGzipExtensions = ['js', 'css']
module.exports = {
publicPath: process.env.NODE_ENV === 'production'
? '/hmi-admin/'
: '/',
productionSourceMap: false,// map,js
lintOnSave: false,
devServer: {
proxy: {
'/api': {
target: 'http://localhost',
ws: true,
changeOrigin: true
},
'/rrpc': {
target: 'http://localhost',
ws: true,
changeOrigin: true
},
'/image': {
target: 'http://localhost',
ws: true,
changeOrigin: true
}
}
},
//
configureWebpack: {
plugins: [
new CompressionWebpackPlugin({
filename: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),//
threshold: 10240,// 10K
minRatio: 0.8,
deleteOriginalAssets: false,//
})
]
}
}
2.サーバーNginxがgzip圧縮構成を開く
gzip on; # Gzip
gzip_static on; #
gzip_min_length 10k; # , 10K
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; #
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
3.サーバNginxがhttp 2構成を開く
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
}
完全な構成は次のとおりです.
server {
listen *:80;
listen *:443 ssl http2;
listen [::]:80;
listen [::]:443 ssl http2;
server_name xxxxxxxx.com;
ssl_certificate xxxxxxxx;
ssl_certificate_key xxxxxxxxxxx;
return 301 https://xxxxxxxx$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxxxxxx;
ssl on;
root /var/www/html/www;
index index.html index.htm index.php;
ssl_certificate xxxxxx;
ssl_certificate_key xxxxxxxxxxxxx;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#
#add_header X-Frame-Options DENY;
#
#add_header X-Content-Type-Options nosniff;
# XSS
add_header X-Xss-Protection 1;
add_header Strict-Transport-Security "max-age=31536000";
gzip on; # Gzip
gzip_static on; #
gzip_min_length 10k; # , 10K
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; #
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
}
参照先:
1. vue cli3.x gzipを開き、速度2を最適化する.高性能Webサイト構築-フロントエンドのパフォーマンス最適化(Vueヘッダのロード時間最適化詳細案付)