1.fastCGI
fastcgi是一個協議
php-fpm實現這個協議、管理fastcgi
確認運行
ss -pl | grep php
2. Redis Object Cache
Redis Object Cache 可提升 WordPress 的效能,
透過將查詢結果快取在記憶體中,
加速讀取與降低資料庫負載。
sudo systemctl status redis
3.MariaDB Query Cache
MariaDB Query Cache 設定 路徑:
/etc/mysql/mariadb.conf.d/50-server.cnf
重啟MariaDB
sudo systemctl restart mariadb
4.gzip or Brotli
Brotli 與 gzip 進行基準測試時,發現它可以更好地壓縮檔案:
- JavaScript 檔案小 14%
- HTML 檔案小 21%
- CSS 檔案小 17%
由於Brotli被設計為動態壓縮流,
因此它在伺服器上壓縮內容和 在瀏覽器中解壓縮內容比 gzip 更快。
在某些情況下,整體前端解壓縮速度比 gzip 快 64%。
取得模組
echo "deb http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb-src http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
安裝
sudo apt install nginx-module-brotli
nginx.conf配置
brotli on; brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml+rss text/javascript;
測試、重啟
sudo nginx -t
sudo systemctl restart nginx
gzip:
nginx conf裡配置給足
gzip on;
→ 啟用 Gzipgzip_types
→ 壓縮常見的 CSS、JS、JSON、XML、HTMLgzip_comp_level 6;
→ 設定壓縮等級(1-9,6 為平衡速度與壓縮率)gzip_min_length 256;
→ 只壓縮超過 256 bytes 的檔案gzip_vary on;
→ 讓Vary: Accept-Encoding
頭資訊可用gzip_proxied any;
→ 允許 Proxy 伺服器壓縮內容
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_comp_level 6;
gzip_min_length 256;
gzip_proxied any;
gzip_buffers 16 8k;
dev tool network確認啟用
排查是server端的問題還是程式端
curl -o /dev/null -s -w '%{time_starttransfer}\n' {你的資源 url}
例如單一照片得到的值0.1xxx
響應100毫秒但 google speedinsight同張照片卻報最大內容繪製元素 6,180 毫秒
那就知道server設定大致沒問題
可以往程式端js、css卡時間優化