如何為 WordPress 設置反向代理

已發表: 2023-01-16

作為 WordPress 管理員,您可能會發現自己處於必須設置反向代理服務器的情況。 幸運的是,設置反向代理服務器相對容易,您可以使用多種不同的軟件包。 本文簡要概述瞭如何使用 NGINX 為您的 WordPress 站點設置反向代理服務器。

什麼是反向代理服務器以及為什麼將它們用於 WordPress

反向代理服務器代表客戶端從一台或多台服務器檢索資源。 然後將這些資源傳送到客戶端,而無法判斷它們來自代理服務器。

反向代理很有用,因為它們可以隱藏原始服務器的存在和特徵。 例如,反向代理可以通過屏蔽惡意請求或大量流量來為 Web 應用程序提供額外的安全性、性能和可靠性層。

如果您想了解更多信息,網上有很多資源可以幫助您了解有關反向代理服務器的更多信息。 可能需要設置反向代理服務器有幾個常見原因:

  • 通過內容緩存提高站點性能

反向代理的一個常見用例是緩存頻繁請求的 WordPress 內容。 例如,如果一組 Web 服務器為一個網站提供服務,則反向代理可以在單個服務器上緩存網站的靜態內容(例如 HTML 頁面、圖像和 CSS 文件)。 這可以提高 WordPress 網站的性能,因為每次用戶請求頁面時不需要從 Web 服務器檢索內容。

  • 卸載 CPU 密集型任務,例如圖像大小調整

反向代理服務器可以從 WordPress 服務器卸載 CPU 密集型任務,例如圖像大小調整,方法是將這些任務的請求轉發到更適合處理這些任務的服務器。 這可以通過釋放 WordPress 服務器上的資源用於其他任務來幫助提高 WordPress 站點的性能。

  • 通過過濾請求和阻止惡意流量提高安全性

反向代理服務器可以通過過濾請求和阻止惡意流量來提高 WordPress 的安全性。 通過過濾請求,反向代理服務器可以阻止訪問已知與惡意活動相關的特定 IP 地址或區域。 通過阻止惡意流量,反向代理服務器可以幫助減輕 DDoS 攻擊和其他針對 WordPress 站點的攻擊的影響。

  • 使 WordPress 可以從不同的域或子域訪問

如上所述,反向代理服務器代表客戶端從一個或多個服務器檢索資源。 這些資源可以是任何文件類型,但最常見的是網頁。 反向代理服務器然後為客戶端提供這些資源,它們看起來好像來自服務器本身。 這是通過配置反向代理服務器將對 WordPress 內容的請求轉發到 WordPress 服務器來完成的,同時仍然讓客戶端產生他們正在直接從本地代理服務器訪問內容的錯覺。

最受歡迎的反向代理服務器

據 W3Techs 稱,大約 83% 的網站不使用反向代理服務。 剩下的 17% 大部分是 CDN,因為反向代理通常出於安全目的隱藏它們的存在,這使得 W3Techs 等網站監控服務很難確定哪些是最廣泛使用的。 以下是三種最常用的反向代理解決方案:

  • NGINX

NGINX 是一種 Web 服務器,具有多種優勢,例如增強的性能、安全性、可靠性和可擴展性。 您可以免費獲得它,也可以使用商業版 NGINX Plus,用於具有基於 API 的設置可能性的公司網站。 不少大企業都在使用 NGINX——Cloudflare、Netflix、MaxCDN 等。 將 NGINX 配置為反向代理很容易,您可以對其進行個性化設置以滿足您的需求。

Varnish 是一種開源軟件,可以提高高流量網站的性能。 它用作反向代理、負載平衡器、Web 應用程序防火牆和邊緣身份驗證服務器,並且支持邊緣側包含 (ESI) 以加快頁面加載速度。 您可以將其用作 NGINX 或 Apache Web 服務器的前端,或將其設置為 WordPress 的反向代理。

  • 阿帕奇流量服務器

Apache Traffic Server 是一個以其性能和容量著稱的開源選項,最初由 Yahoo! 開發。 在他們將其贈送給 Apache 基金會之前作為商業服務。 它目前被許多內容網絡和 CDN 使用,包括 Akami、Apple、Comcast、LinkedIn 和 Yahoo 來增強他們的系統。 此外,Apache HTTP 服務器 (Apache httpd) 可用於在您的 Web 服務器上設置反向代理,允許它向用戶提供靜態和動態內容,同時仍作為常規 Web 服務器運行。

  • 代理服務器

HAProxy 是一種免費的開源反向代理和負載均衡器,旨在與許多現有的 Web 服務器架構一起工作,例如 Linux 系統和基於雲的平台。 它利用事件驅動的 I/O 模型,可以在多個工作進程之間分發請求,類似於 NGINX。 HAProxy 以其即使在高峰負載期間也能處理大量流量的能力而聞名。 它被世界上一些最大的網站使用,例如 Airbnb、Reddit 和 Instagram。

WordPress 網站的反向代理服務器用例

儘管您也可以使用其他反向代理,但 NGINX 是最受歡迎的選擇。 以下是為 WordPress 網站設置反向代理的三個主要用例:

  • 單一服務器上的主網站和代理網站

如果主站點和代理站點都託管在同一個 Web 服務器上,則可以設置反向代理,以便從主站點加載代理站點。 您可以通過在主站點上配置所有相關的反向代理規則並將代理站點設置為通過代理加載來完成此操作。 此外,如果使用 SSL 證書,則必須在 wp-config.php 中製定特定規則以防止重定向循環。 請注意,不可能創建與用於加載站點的子目錄相同的 URL。

  • 僅在您的服務器上託管代理站點

要創建反向代理,您必須聯繫主網站的服務器管理員並在兩台服務器上配置規則。 還應添加指向反向代理的域名。 這通常是通過鏈接到代理站點(例如 your_domain.com/blog)的子域(例如 blog.your_domain.com)完成的。 請注意,您需要服務器的 IP 地址才能完成設置過程。

  • 主站點託管在您的服務器上

如果您只能訪問主網站及其託管服務器,那麼您應該設置反向代理並調整其設置,以便從外部主機拉取頁面。 輔助服務器的管理員負責安裝和配置要通過反向代理訪問的代理站點。

為 WordPress 設置反向代理的步驟

為 WordPress 設置反向代理是提高網站性能的好方法。 它還可以幫助保護您的 Web 服務器免受惡意請求並幫助改善用戶體驗。 以下是為 WordPress 設置反向代理需要執行的步驟。

  1. 安裝反向代理服務器

第一步是安裝反向代理服務器。 我們推薦使用免費且開源的 NGINX Web 服務器。 也可以使用其他流行的 Web 服務器,例如 Apache,但我們假設您在本教程中使用的是 NGINX。 假設您想使用 NGINX 反向代理 (192.xx10) 以及已經啟動並運行的 Apache Web 服務器 (192.xx20)。

在 Ubuntu 服務器上安裝 NGINX 只需運行一條命令:

sudo apt-get 更新
sudo apt-get 安裝 nginx

安裝 NGINX 後,使用此命令禁用虛擬主機:

sudo unlink /etc/nginx/sites-enabled/default

現在是創建反向代理的時候了。 您可以通過在 etc/nginx/sites-available 目錄中創建一個名為 reverse-proxy.conf 的文件來實現。 首先,導航到目錄:

cd etc/nginx/sites-available

通過 vi 編輯器創建文件:

vi 反向代理.conf

將以下行添加到文件中:

服務器 {
聽80;
地點 / {
proxy_pass http://192.xx20;
}
}

正如我們所見,代理通道允許通過反向代理的請求被傳遞到主服務器的遠程套接字 192.xx20:80。 換句話說,兩個服務器共享內容。 完成後,保存文件並退出編輯器。 要將信息轉發到其他服務器,請在終端中使用 ngx_http_proxy_module。 最後,您需要使用以下命令鏈接到 /sites-enabled/ 來激活指令:

sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

剩下要做的就是測試反向代理。 您需要運行配置測試並重新啟動 NGINX 以驗證其性能。 使用以下命令檢查 NGINX 是否正常工作:

服務 nginx 配置測試
服務 nginx 重啟

如果測試失敗,則意味著 Apache 可能未正確設置。

反向代理服務器限制

反向代理可能會帶來重大的安全風險,因為它可以觀察和修改通過它的所有流量。 如果通過反向代理髮送 HTTPS 流量,則必須對數據進行解密和重新加密,這需要 SSL/TLS 證書的私鑰。 如果黑客獲得此反向代理的訪問權限,他們就有可能記錄密碼並將惡意代碼插入網站。

如果您和您的用戶都不能直接訪問主服務器,則反向代理可能會造成單點故障。 例如,如果一個反向代理服務於多個域,任何中斷都會導致所有這些站點無法訪問。 如果使用第三方反向代理,請不要忘記您正在與他們共享有關該站點的重要詳細信息。

結論

為 WordPress 設置反向代理可以提高網站的安全性和性能。 為 WordPress 設置反向代理的步驟因服務器和配置而異。 通常,它們包括配置代理服務器、設置後端 Web 服務器和設置 WordPress 站點。 儘管設置反向代理服務器可能是有益的,但它也有局限性。