如何在日本伺服器上啟用檔案壓縮節省頻寬

東京資料中心和大阪資料中心都會收取較高的下行流量費用。你必須立即在日本伺服器以及其他託管伺服器上啟用 Gzip 和 Brotli 等檔案壓縮演算法,以降低出口頻寬成本。壓縮靜態資源、系統日誌和 SSH/SMB 流量可以大幅減少網路使用量。
重要提示:在修改任何核心伺服器設定檔之前,請先確認你擁有 root 或系統管理員權限。
開啟伺服器端壓縮可以立即帶來效能與成本上的效益:
壓縮方案 | 檔案體積縮減 | 速度提升 |
|---|---|---|
Gzip | 縮小約 73% | 加速約 23.3% |
Brotli | 額外再縮小約 5.7% | 額外再加速約 3.5% |
重點摘要
在 Web 伺服器上啟用 Gzip 和 Brotli 壓縮,可將檔案體積縮小 70% 以上。
使用 cURL 指令檢查 HTTP 標頭,可快速驗證檔案壓縮是否已啟用。
為 SSH、SMB 和日誌檔開啟壓縮,可以顯著減少背景資料流量。
使用東京和大阪本地的 CDN 邊緣節點,可以降低資料成本並提升載入速度。
驗證伺服器壓縮狀態
在修改任何設定之前,你必須先檢查伺服器目前狀態。如此可了解伺服器是否已啟用壓縮格式,並為後續的網路成本比較建立基準。
透過終端機指令檢查 HTTP 標頭
你可以使用 cURL 終端機指令快速測試 HTTP 回應。HTTP/1.1 規範(RFC 7231)要求 Web 伺服器在進行負載壓縮時回傳 Content-Encoding 標頭。該標頭會告知用戶端瀏覽器應使用哪種解壓方式。
在終端機中依照以下步驟執行指令以檢查回應標頭:
測試 Gzip 壓縮:執行
curl -H "Accept-Encoding: gzip" -i <URL>以請求 Gzip 編碼。驗證 Gzip 輸出:在 HTTP 回應標頭中尋找
Content-Encoding: gzip。測試 Brotli 壓縮:執行
curl --head --header 'Accept-Encoding: br' --silent <URL> | grep content-encoding請求 Brotli 編碼。驗證 Brotli 輸出:若回應標頭中出現
content-encoding: br,則表示支援 Brotli。
你也可以直接使用 -I 參數(curl -I -H "Accept-Encoding: gzip" [URL])只取得標頭資訊。或者開啟瀏覽器開發者工具,在 Network(網路)面板中檢查資源的標頭欄位。
測量基準下行頻寬使用情況
在對全域伺服器啟用壓縮之前,系統管理員必須先分析網路傳輸速率。監控工具可以追蹤即時流量型態,並協助設定效能基準。
工具名稱 | 支援的作業系統 | 即時下行監控 | 關鍵特性 |
|---|---|---|---|
nload | Linux | 支援 | 以圖表形式顯示即時進出流量。 |
iftop | Linux | 支援 | 依連線維度追蹤即時頻寬使用情況。 |
Observium | Linux、Windows、FreeBSD | 支援 | 提供基於 SNMP 的指標蒐集與即時警示。 |
NetFlow Traffic Analyzer | 跨平台 | 支援 | 提供全面的網路流量型態分析。 |
專業提示:使用
vnStat(例如vnstat -d)等命令列工具記錄每日持久化傳輸量。
如果你使用 OpenTelemetry 流水線,可以透過 Prometheus 查詢平均負載大小:
rate(otelcol_processor_batch_send_size_bytes_sum[5m]) / rate(otelcol_processor_batch_send_size_bytes_count[5m])
這些指標有助於在啟用壓縮後精確計算節省的出口流量。
在 Web 伺服器上啟用檔案壓縮
你可以設定 Web 軟體在透過網際網路傳送資料前自動壓縮檔案。在日本資料中心為伺服器啟用檔案壓縮後,可以明顯降低下行頻寬成本。
設定 Nginx 的 Gzip 與 Brotli 模組
Nginx 能高效處理 Gzip 和 Brotli 壓縮。Gzip 可將資源體積縮減 50–70%,而 Brotli 在此基礎上還能額外減少約 15–25%。
壓縮指令 | 建議等級 | 效能 / 使用情境 |
|---|---|---|
| 4 – 6 | 在高流量 Nginx 環境中平衡 CPU 負載與壓縮率。 |
| 4 或 6 | 等級 6 在速度與壓縮率之間取得平衡,等級 4 則進一步降低 CPU 開銷。 |
依照以下步驟在 Nginx 中啟用兩種演算法:
載入動態 Brotli 模組:在
/etc/nginx/nginx.conf頂端、events區塊之前,插入load_module modules/ngx_http_brotli_filter_module.so;和load_module modules/ngx_http_brotli_static_module.so;。設定 Gzip 指令:在
http { ... }區塊中加入gzip on;、gzip_comp_level 6;、gzip_min_length 256;,並透過gzip_types定義目標 MIME 型別。設定 Brotli 指令:在 Gzip 設定下方加入
brotli on;、brotli_static on;和brotli_comp_level 6;。驗證並重新載入 Nginx:在終端機中執行
sudo nginx -t進行設定檢查,然後使用sudo systemctl reload nginx重新載入設定。
提示:啟用
brotli_static on;可直接從磁碟提供預壓縮的靜態資源,在流量高峰時繞過即時 CPU 壓縮。
設定 Apache 的 Mod_Deflate 與 Mod_Brotli
Apache 透過 mod_deflate 提供 Gzip 編碼,透過 mod_brotli 提供 Brotli 支援。你需要在 HTTPD 設定檔中載入這些模組:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript application/json
</IfModule>
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css application/javascript application/json
</IfModule>
你也應針對長距離跨地域鏈路最佳化 TCP 連線設定。啟用 Keep-Alive 指令可以降低往返延遲:
指令 / 機制 | 在 Apache 中的作用 | 對開銷與延遲的影響 |
|---|---|---|
| 啟用持久性 HTTP 連線。 | 透過重複使用單一連線,避免不斷進行三向交握。 |
| 限制每個連線允許的請求次數。 | 防止資源長時間被占用,同時維持低延遲處理。 |
| 定義連線閒置逾時時間(秒)。 | 在用戶端不再活動時儘快釋放伺服器記憶體。 |
在 IIS 中啟用靜態與動態壓縮
在 Windows Server 上,你可以透過 IIS 管理員輕鬆啟用檔案壓縮,無需手動編輯設定檔。
請依照以下步驟操作:
透過 Server Manager(伺服器管理員) > Tools(工具) 開啟 Internet Information Services (IIS) Manager。
在 Connections(連線) 面板中選取伺服器名稱,以便套用全域規則。
在 Home(首頁) 面板中按兩下 Compression(壓縮) 功能圖示。
勾選 Enable dynamic content compression(啟用動態內容壓縮) 和 Enable static content compression(啟用靜態內容壓縮) 核取方塊。
在 Actions(動作) 面板中按一下 Apply(套用) 儲存設定。
系統與通訊協定層資料傳輸壓縮
網路流量不僅來自瀏覽器。檔案傳輸和系統日誌等伺服器管理工作會持續在日本網路邊界之間傳輸資料。你必須最佳化這些背景通訊協定,以降低下行成本。
為遠端 SSH 與 SMB 傳輸啟用壓縮
SSH 連線可以在檔案傳輸時自動壓縮資料負載。透過加入 -C 命令列參數,可啟用使用 gzip 演算法的標準 SSH 資料壓縮。此操作會壓縮所有標準資料流,包括標準輸入、標準輸出以及在慢速網路上的轉送連線。
你可以為所有外送 SSH 工作階段設定長期壓縮。在 /etc/ssh/ssh_config 或本機 $HOME/.ssh/config 檔案中加入 Compression yes 即可。
方式 | 實作方法 | 說明 |
|---|---|---|
|
| 在設定檔中依全域或主機層級啟用資料壓縮。 |
命令列參數 |
| 透過標準旗標為所有傳輸資料要求壓縮。 |
命令列選項 |
| 在指令呼叫中直接設定壓縮屬性。 |
你同樣可以為 SMB 檔案分享啟用壓縮。透過 Windows 管理中心可以直接切換 SMB 壓縮相關設定。Linux 管理員則可在 tsmb.conf 中加入壓縮參數,以最佳化東京與海外分公司之間的跨境檔案傳輸。
使用 Logrotate 管理日誌檔壓縮
未壓縮的日誌檔會占用大量磁碟空間,並增加備份傳輸體積。你可以設定 logrotate 服務,在日本的儲存磁碟區上自動管理大體積日誌檔。
建議採用以下日誌管理作法:
高頻輪替:對於高流量系統或 API,當每小時日誌量超過 100MB 時,可設定為每小時輪替一次日誌。
自動壓縮:使用
.gz、.xz或.bz2等格式自動壓縮日誌,可將儲存空間占用減少最多約 80%。統一命名:採用時間戳記命名方式(例如
access_20240601.log),方便日誌分析與跨系統關聯。
在 /etc/logrotate.conf 檔案中加入 compress 和 delaycompress 等指令。這些指令會將封存日誌進行壓縮,同時保留最新日誌檔以便疑難排解。
日本邊緣快取與頻寬最佳化
透過本地內容傳遞網路(CDN)邊緣節點轉送 Web 流量,可以進一步減少出口成本。邊緣快取與伺服器壓縮相互搭配,可在亞太地區快速傳遞內容。
集成本地東京與大阪 CDN 邊緣節點
將 CDN 節點部署在日本的網際網路交換中心,可以讓資料更貼近本地使用者。當你整合東京和大阪的邊緣節點後,將獲得顯著效能優勢:
就近傳遞:在東京和大阪等區域樞紐部署接入點(PoP),讓內容在物理距離上更接近終端使用者,大幅縮短資料傳輸路徑並降低網路延遲。
快取內容服務:使用者請求將由最近的邊緣節點直接回應,而不必回到源站伺服器,從而加快整個亞太區的載入速度。
頻寬最佳化:將靜態資源請求卸載到本地邊緣快取,能減輕源站 VPS 的資料流量壓力,進而大幅節省整體頻寬消耗。
驗證標頭資訊並衡量頻寬節省
你必須確認邊緣伺服器已正確快取壓縮後的檔案。可以透過簡單的終端機指令即時檢查快取相關的 HTTP 標頭:
開啟終端機介面。
使用 cURL 執行擷取請求以檢視標頭資料:
curl -sI https://example.com/asset.js | grep -iE 'cf-cache-status|x-cache|x-vercel-cache|age|cache-control'在終端機輸出中查看
x-cache、cf-cache-status或age等快取標記,以判斷資源是 HIT 還是 MISS。
你應定期追蹤以下關鍵效能指標,以衡量節省的成本與網路效率:
效能指標 | 指標功能 / 說明 |
|---|---|
快取命中率 | 衡量由邊緣快取直接回應的使用者請求占總請求的百分比。 |
頻寬節省量 | 追蹤因有效快取而減少的整體資料傳輸量。 |
由快取提供的資料總量 | 量化由邊緣節點直接傳遞的內容體積。 |
快取未命中率 | 評估需要回源擷取內容的請求占比。 |
延遲降低 / 效能提升 | 評估終端使用者實際感受到的加速效果與效能改善。 |
網路輸送量 | 監控整體網路的資料傳輸效率與系統容量。 |
成本節省 | 分析因減少源站流量而帶來的頻寬費用下降。 |
當你在日本基礎設施的所有核心服務中啟用檔案壓縮時,就能獲得最大的頻寬節省效果。將 HTTP、SSH、SMB 以及日誌壓縮結合起來,可以立刻降低組織的下行資料費用,同時讓亞太地區使用者享受更快的存取速度。你應在日常維護週期中檢查壓縮設定,確保未來系統更新不會意外關閉這些最佳化。
提示:建議每季進行一次設定稽核,確保後續系統更新不會停用既有的壓縮設定。
常見問題
啟用壓縮會明顯增加伺服器 CPU 使用率嗎?
在適中設定下,Gzip 和 Brotli 等壓縮演算法只會占用少量 CPU 資源。對靜態資源進行預壓縮可完全繞過即時 CPU 消耗。你可以在不明顯拖慢處理器的前提下獲得巨大的頻寬節省。
在日本伺服器上,Gzip 和 Brotli 哪種演算法表現更好?
Brotli 對靜態文字資源的壓縮率通常優於 Gzip;而 Gzip 在壓縮動態回應時速度更快、負載更低。你應將兩種演算法搭配使用,以在東京和大阪資料中心取得最佳傳輸效率。
如何測試伺服器是否成功壓縮 SSH 和 SMB 流量?
你可以使用 iftop 或 nload 等命令列工具監控即時網路流量,對比啟用前後的傳輸速度與出口總流量。如果傳輸的出口量明顯下降,就表示通訊協定壓縮已生效。
已經壓縮過的檔案格式還需要啟用壓縮嗎?
不需要。你必須避免對 JPEG、PNG、MP4 或 ZIP 等已壓縮媒體格式再次壓縮。重複壓縮不僅浪費 CPU 資源,還可能增加整體檔案體積。請將壓縮規則限制在 HTML、CSS、JavaScript 和 JSON 等文字類檔案上。
