提升Apache Web伺服器效能的5個技巧


在提供網頁服務方面,Apache Web伺服器是最受歡迎的選擇之一。憑藉其開源特性、穩定性和靈活性,Apache被全球數百萬個網站使用。但是,與任何其他軟體一樣,它需要正確的配置和最佳化才能確保最佳效能。在本文中,我們將介紹5個可以幫助提升Apache Web伺服器效能的技巧。

啟用快取

提升Apache Web伺服器效能最有效的方法之一是啟用快取。快取是將頻繁訪問的資料儲存在記憶體或磁碟中的過程,以減少檢索該資料所需的時間。當用戶請求已被快取的頁面時,Apache可以簡單地提供快取版本,而不是從頭開始生成它,從而加快頁面載入速度。

Apache提供了一些可以啟用的快取模組,包括mod_cache、mod_disk_cache和mod_mem_cache。每個模組都有其自身的優缺點,因此選擇最適合您需求的模組非常重要。

以下是使用mod_cache啟用快取的示例:

LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so

<IfModule mod_cache.c>
   CacheEnable disk /
   CacheHeader on
   CacheDefaultExpire 3600
   CacheMaxExpire 86400
   CacheLastModifiedFactor 0.5
   CacheIgnoreCacheControl On
   CacheIgnoreNoLastMod On
</IfModule>

此配置為整個站點啟用磁碟快取,並將預設過期時間設定為3600秒(1小時)。它還將最大過期時間設定為86400秒(1天),並指示Apache使用檔案的上次修改日期作為確定是否提供快取版本的因素。

使用壓縮

改進Apache Web伺服器效能的另一種方法是使用壓縮。壓縮減少了透過網路傳送的資料大小,從而加快了頁面載入速度。Apache提供了一些可以啟用的壓縮模組,包括mod_deflate和mod_gzip。

以下是使用mod_deflate啟用壓縮的示例:

LoadModule deflate_module modules/mod_deflate.so

<IfModule mod_deflate.c>
   AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
   DeflateCompressionLevel 9
   DeflateBufferSize 8096
   DeflateMemLevel 9
</IfModule>

此配置為HTML、純文字、XML、CSS和JavaScript檔案啟用壓縮。它將壓縮級別設定為9(最大壓縮),並將緩衝區和記憶體級別分別設定為8096和9。

最佳化配置

提升Apache Web伺服器效能的另一個重要因素是最佳化其配置。Apache提供了廣泛的配置選項,最佳化它們可以幫助減少伺服器負載並提高頁面載入速度。

以下是一些最佳化Apache配置的技巧:

  • 將載入的模組數量保持在最低限度。

  • 為MaxClients、MaxRequestsPerChild和KeepAliveTimeout指令設定適當的值。

  • 使用最新版本的Apache。

  • 為每個域名使用單獨的虛擬主機。

  • 停用不必要的特性和模組。

使用內容分發網路 (CDN)

內容分發網路 (CDN) 是一種分散式伺服器系統,它根據使用者的地理位置向用戶提供網頁和其他 Web 內容。透過使用 CDN,您可以減少 Apache Web 伺服器的負載,並提高全球使用者的頁面載入速度。

要在 Apache 中使用 CDN,您通常需要修改 DNS 設定以指向 CDN 的伺服器。您可能還需要修改 Apache 配置以允許來自 CDN 伺服器的請求。

以下是配置 Apache 以與 Cloudflare 協同工作的示例:

# Allow Cloudflare IPs
SetEnvIf CF-Connecting-IP "^1\.2\.3\." trusted
SetEnvIf CF-Connecting-IP "^2\.3\.4\." trusted

# Deny all other IPs
Deny from all
Allow from env=trusted

# Forward visitor IP to logs
LogFormat "%{CF-Connecting-IP}e %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" cloudflare
CustomLog /var/log/apache2/access.log cloudflare

此配置允許來自 Cloudflare 伺服器(透過其 IP 地址標識)的請求,並拒絕所有其他請求。它還會記錄 Cloudflare 記錄的訪問者 IP 地址。

使用 HTTP/2

HTTP/2 是 HTTP 協議的最新版本,與之前的 HTTP/1.1 相比,它提供了多項效能改進。其中一項關鍵改進是支援多路複用,它允許透過單個連線傳送多個請求,從而減少載入頁面所需的往返次數。

要在 Apache 中使用 HTTP/2,您需要安裝有效的 SSL/TLS 證書並啟用 http2 模組。以下是啟用 HTTP/2 的示例:

LoadModule http2_module modules/mod_http2.so

<IfModule http2_module>
   Protocols h2 http/1.1
</IfModule>

此配置啟用 HTTP/2,如果客戶端不支援 HTTP/2,則回退到 HTTP/1.1。

實現瀏覽器快取

實現瀏覽器快取可以幫助進一步減少回頭客的頁面載入時間。當訪問者第一次訪問您的網站時,他們的瀏覽器將下載顯示該頁面所需的所有必要檔案(HTML、CSS、JavaScript、影像等)。透過設定正確的標頭,您可以指示訪問者的瀏覽器在指定的時間段內快取這些檔案,從而減少後續訪問需要下載的資料量。

以下是設定瀏覽器快取正確標頭的示例:

<IfModule mod_expires.c>
   ExpiresActive On
   ExpiresByType text/html "access plus 1 day"
   ExpiresByType image/gif "access plus 7 days"
   ExpiresByType image/jpeg "access plus 7 days"
   ExpiresByType image/png "access plus 7 days"
   ExpiresByType text/css "access plus 7 days"
   ExpiresByType application/javascript "access plus 7 days"
</IfModule>

此配置設定不同檔案型別的過期時間,例如 HTML、影像、CSS 和 JavaScript。在此示例中,HTML 檔案快取一天,而影像、CSS 和 JavaScript 檔案快取七天。

使用內容管理系統 (CMS) 快取

如果您使用的是 WordPress 或 Drupal 等內容管理系統 (CMS),您可以利用內建的快取功能來進一步提高網站的效能。這些快取功能透過儲存網站頁面呈現的 HTML 輸出來工作,然後可以在無需每次請求時重新生成頁面即可向訪問者提供這些輸出。

例如,WordPress 有幾個流行的快取外掛,例如 WP Super Cache 和 W3 Total Cache,可以輕鬆安裝和配置。這些外掛可以透過減少 Apache Web 伺服器的負載來幫助大幅提高 WordPress 網站的效能。

最小化 HTTP 請求

每次訪問者從您的 Web 伺服器請求頁面時,他們的瀏覽器都會發送對顯示該頁面所需的每個檔案的請求,例如 HTML、CSS、JavaScript 和影像。需要下載的檔案越多,頁面載入時間就越長。

要最小化 HTTP 請求,您可以:

  • 將多個 CSS 和 JavaScript 檔案合併到一個檔案中。

  • 使用 CSS 精靈將多個影像合併到單個影像檔案中。

  • 使用延遲載入來推遲載入位於螢幕以下的影像。

  • 透過最小化 HTTP 請求,您可以減少需要傳輸的資料量,從而加快頁面載入速度。

監控伺服器效能

最後,監控 Apache Web 伺服器的效能以確保其平穩執行非常重要。監控工具可以幫助您識別效能瓶頸,例如高 CPU 使用率、低記憶體或慢速磁碟 I/O。透過儘早識別這些問題,您可以採取措施最佳化伺服器並提高其效能。

有很多可用於 Apache 的監控工具,包括 ApacheTop、Apachetune 和 Munin。這些工具可以提供有關伺服器效能的詳細統計資訊,例如每秒請求數、CPU 使用率和記憶體使用率。

結論

最佳化 Apache Web 伺服器的效能是確保網站快速響應的關鍵部分。透過遵循這 5 個技巧,您可以提高頁面載入速度、減少伺服器負載並提供更好的使用者體驗。但是,這些只是您可以最佳化 Apache 的眾多方法中的一小部分。為了獲得最佳效能,重要的是嘗試不同的設定和配置,並找到最適合您特定設定的方法。

更新於:2023年4月11日

3K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告