通過在您的站點前充當反向代理,Cloudflare是一種一體化的安全和效能產品,被全球超過12%的網站使用。作為WordPress 使用者,將Cloudflare新增到您的網站有助於提高網站效能並減少惡意機器人和黑客的影響。
正確配置後,對您站點的所有請求將首先到達Cloudflare伺服器,然後該伺服器將確定是否應將請求轉發到源伺服器、從快取中提供服務、阻止或使用自定義規則進行處理。
在本指南中,我們將深入探討WordPress的最佳Cloudflare設定,討論快取和安全設定,並向您展示如何為WordPress多站點安裝配置Cloudflare 。
- 如何為WordPress配置Cloudflare
- Cloudflare WordPress外掛
- WordPress的Cloudflare自動平臺優化
- Cloudflare Argo和Railgun
- 如何為WordPress多站點配置Cloudflare
如何為WordPress配置Cloudflare
Cloudflare提供了多種安全和效能優勢,但並非所有這些優勢都與WordPress完全相容。讓我們深入瞭解Cloudflare的設定,以確定適合您的WordPress網站的最佳功能。
SSL
Cloudflare支援四種SSL/TLS加密模式——Off, Flexible, Full和Full (Strict)。
- Off –不加密。
- Flexible –僅加密瀏覽器和Cloudflare之間的連線。
- Full –端到端加密,但允許在源伺服器上使用自簽名證書。
- Ful (Strict) –端到端加密,需要來自Cloudflare的免費原始證書或來自受信任CA(證書頒發機構)的證書。我們建議使用Full (Strict) SSL模式以獲得最大的安全性。
對於希望在其WordPress網站上使用Cloudflare的使用者,我們建議在寶塔面板中生成免費的Let’s Encrypt SSL證書,並在Cloudflare中使用Full或Full (Strict) 選項。
或者,您還可以生成Cloudflare原始證書以安裝在您的原始伺服器上。如果您的主機不提供免費的SSL證書,則在您的伺服器上安裝Cloudflare原始證書將允許您使用Full (Strict) SSL模式。
如果您使用在子域上託管站點,而根域使用Cloudflare的Flexible SSL,則可以使用Cloudflare頁面規則強制子域使用Full或Full (Strict) SSL。
為具有Cloudflare頁面規則的子域啟用Full (Strict) SSL
此選項允許您使用Cloudflare的Flexible SSL,同時確保子域的Cloudflare Full (Strict) SSL。
始終使用HTTPS
我們建議啟用此選項以自動將所有HTTP請求轉發到HTTPS。
HSTS
HSTS代表“HTTP Strict Transport Security”,用於強制Web瀏覽器使用安全的HTTPS連線。在Cloudflare上啟用HSTS可確保HTTP請求永遠不會到達您的源伺服器。如果您的站點已設定為使用HTTPS,我們建議您也在源伺服器上配置HSTS。
最低TLS版本
TLS(傳輸層安全性)是一種加密協議,允許通過網路安全傳輸資料。預設情況下,Cloudflare為協議版本設定TLS 1.0。某些安全標準(例如 PCI DSS 3.2)需要更新版本的TLS協議以實現合規性。如果您的站點需要某個TLS版本,您可以通過轉到SSL/TLS > Edge Certificates > Minimum TLS Version來更改設定。
自動HTTPS重寫
此功能檢查HTML程式碼中的HTTP資源URL以檢視它們是否可通過HTTPS訪問。如果是這樣,它們將使用HTTPS變體自動重寫。自動HTTPS重寫對於確保沒有混合內容錯誤的安全瀏覽體驗非常有用。
速度(Speed)
大多數與效能相關的Cloudflare設定,例如資產縮小和影象優化,都可以在“Speed”選項卡中找到。
影象大小調整(僅限商業計劃)
Cloudflare的影象大小調整功能僅適用於商業計劃使用者。在您的WordPress主題中正確實施後,此功能可用於將影象縮圖生成offload到Cloudflare。與WordPress中的內建縮圖生成功能相比,這有幾個好處。
對於動態生成影象大小的站點,使用Cloudflare的影象大小調整功能可以降低CPU使用率——這允許您的站點在不增加CPU資源的情況下為更多併發使用者提供服務。Cloudflare影象大小調整還有助於減少磁碟空間使用,因為縮圖不必儲存在伺服器上。
Cloudflare影象大小調整通過在影象前新增端點來工作。請看下面的示例,該示例顯示了該功能的工作原理。
原始圖片網址
https://yourdomain.com/wp-content/uploads/2020/01/picture.jpg
調整大小的影象URL
https://yourdomain.com/cdn-cgi/image/fit=contain,format=auto,metadata=none,onerror=redirect,quality=70,width=720/https://yourdomain.com/wp-content/uploads/2020/01/picture.jpg
可以調整“寬度”引數以動態生成不同的縮圖大小,而無需在源伺服器上增加任何額外的資源負載。如果您正在尋找類似於Cloudflare的影象大小調整功能的獨立服務,Imgix和Cloudinary是不錯的選擇。
不要忘記檢視我們關於優化網路影象的深入指南。
Polish(僅限專業版)
Cloudflare Polish是一種影象優化服務,可自動壓縮JPG、PNG、GIF和其他影象檔案。影象在Cloudflare邊緣處理,這意味著託管WordPress站點的伺服器沒有效能負擔。Polish還支援Google的WEBP格式 ——這意味著優化的WEBP影象將自動提供給支援該格式的Chrome、Brave和其他瀏覽器。
出於幾個原因,Polish是WordPress網站的一項有用功能。如果您使用的是ShortPixel或Imagify等影象優化外掛,Polish可以顯著降低伺服器的CPU使用率——這可以為訪問者帶來更穩定的瀏覽體驗。由於Polish的影象是在伺服器外儲存和快取的,因此您不必擔心用盡磁碟空間來儲存影象的WEBP版本。
Auto Minify
Cloudflare的Auto Minify功能會自動縮小快取的CSS、JSS和HTML資產。如果您不使用Autoptimize或WP-Rocket等WordPress外掛來縮小資產,我們建議您在Cloudflare中啟用自動縮小功能。
Brotli
Brotli是GZIP的替代方案,GZIP是一種壓縮演算法,可在將Web請求提供給訪問者之前減小它們的大小。與GZIP相比,Brotli提供了更高的壓縮比,這意味著使用者的頁面載入速度更快。問題是並非所有的網路瀏覽器都支援Brotli壓縮。無論如何,我們建議啟用Cloudflare的Brotli功能,因為來自不受支援的瀏覽器的請求只會退回到GZIP壓縮。
增強的HTTP/2優先順序(僅限專業版)
HTTP/2的引入通過並行化和多路複用為網站帶來了顯著的效能提升。Cloudflare增強的HTTP/2優先順序功能更進一步,它通過智慧解析您網站的HTML來確定載入資產的順序以獲得最佳效能。根據Cloudflare的說法,增強的HTTP/2優先順序可以將頁面載入時間減少多達50%。
Mirage(僅限專業版)
Mirage是一項針對移動和低頻寬連線的影象優化功能。啟用Mirage後,在初始頁面載入期間,影象將替換為低解析度佔位符。頁面載入後,全解析度影象被延遲載入。
Mirage還能夠將多個影象請求組合成一個請求,從而減少完全載入頁面所需的往返次數。如果您的網站使用大量圖片並針對移動裝置較多的人群,Cloudflare Mirage可以對效能產生積極影響。
Rocket Loader
Rocket Loader是一項通過非同步載入JavaScript資源來加快載入時間的功能。這有效地減少了頁面的渲染阻塞內容,從而加快了頁面載入時間。我們建議您在啟用Rocket Loader的情況下測試您的網站,看看它是否能提高您的頁面速度。如果您的WordPress站點依賴於以特定順序載入的JavaScript資產,您可以通過向指令碼標籤新增屬性data-cfasync="false"
來繞過Rocket Loader。
快取(Caching)
預設情況下,Cloudflare會快取CSS 、JS和影象檔案等靜態資產。請注意,預設情況下,Cloudflare不會快取您網站生成的HTML。
快取級別
我們建議將快取級別保留為“Standard”,這允許使用唯一查詢字串訪問資產的更新版本。
瀏覽器快取有效期
如果你的伺服器本身已經設定了瀏覽器快取有效期,我們建議將瀏覽器快取過期設定設定為“Respect Existing Headers”。如果您想用更短的過期時間覆蓋此設定,請隨時更改此設定。
防火牆(Firewall)
如果您的主機不提供可自定義的防火牆,Cloudflare的免費計劃包括一個允許五個自定義規則的基本防火牆。防火牆規則可以配置為阻止特定的IP地址、使用者代理、請求方法、HTTP引用,甚至國家。
例如,如果您發現您的WooCommerce商店從目標市場以外的國家/地區收到大量虛假訂單,您可以使用Cloudflare的免費防火牆來阻止來自整個國家/地區的流量。
Cloudflare的Pro計劃具有更強大的Web應用程式防火牆 (WAF)。WAF提供專門的託管規則集,有助於進一步保護您的站點。例如,有一些針對WordPress和PHP站點的規則集。
用於WordPress的Cloudflare託管規則集
對於大多數WordPress網站,Cloudflare的免費計劃提供的安全級別就足夠了。但是,如果您正在執行需要更多保護的任務關鍵型業務站點,Cloudflare的專業級WAF和託管規則集可以幫助進一步保護您的站點。
(推薦閱讀:Sucuri vs Wordfence)
網路(Network)
在Cloudflare的“Network”設定中,我們建議啟用HTTP/2、HTTP/3(使用QUIC)和0-RTT連線恢復。
正如我們前面提到的,HTTP/2通過並行化和多路複用為HTTP/1.1帶來了一些改進。類似地, HTTP/3通過使用稱為QUIC的新的基於UDP的協議而不是傳統的TCP,進一步擴充套件了HTTP/2的效能。
啟用HTTP/2、HTTP/3和0-RTT連線恢復
安全的HTTP/3連線還受益於優化的握手例程,從而縮短了連線時間。在Cloudflare儀表盤中啟用HTTP/3後,受支援的客戶端將能夠使用HTTP/3連線到Cloudflare伺服器。
最後,Cloudflare的0-RTT連線恢復功能縮短了之前連線到您網站的訪問者的載入時間。
頁面規則(Page Rules)
Cloudflare的頁面規則功能允許您自定義特定URL的設定。頁面規則對於禁用某些資產的快取、更改所選頁面的安全級別等很有用。Cloudflare頁面規則有兩個關鍵元件——URL匹配模式和對匹配的URL執行的操作。在下面的螢幕截圖中,您可以看到將www URL重定向到非www版本的Cloudflare頁面規則。
Cloudflare轉發URL頁面規則
此規則匹配以 www.brianonwp.com
開頭的URL。請注意星號字元的包含,它允許您建立萬用字元匹配模式。把星號想象成“這裡的任何東西”。在URL模式下,您可以看到該頁面規則配置為301將所有匹配的請求重定向到https://brianonwp.com/$1
,其中“$1”是指匹配模式中的“第一個萬用字元”。
使用像這樣的頁面規則,請求www.brianli.com/specific-page/
將被重定向到brianli.com/specific-page/
.
使用Cloudflare頁面規則,您可以將特定設定應用於任何匹配的URL。檢視下面可應用於頁面規則的設定列表。某些設定甚至可以組合成一個頁面規則!
- Always Online –啟用或禁用Cloudflare的“Always Online”功能,如果發現原始伺服器離線,該功能會提供頁面的靜態HTML副本。
- Always Use HTTPS –對匹配的URL強制使用HTTPS。
- Auto Minify –啟用或禁用HTML、CSS和JS縮小。
- Automatic HTTPS Rewrites –啟用將HTML中的HTTP URL重寫為HTTPS版本。
- Browser Cache TTL –指定匹配URL上的瀏覽器快取TTL。例如,您可以為不同型別的檔案設定不同的瀏覽器快取TTL。
- Browser Integrity Check –啟用或禁用Cloudflare的“Browser Integrity Check”功能,該功能檢查HTTP標頭以清除機器人和惡意流量。
- Cache Deception Armor –啟用或禁用Cloudflare的“Cache Deception Armor”功能,該功能通過確保資產的副檔名與其“Content-Type”匹配來防止Web快取欺騙攻擊。
- Cache Level –配置匹配URL的快取級別。
- Disable Apps –禁用Cloudflare應用程式整合以匹配URL。
- Disable Performance –禁用匹配URL的效能相關功能。
- Disable Railgun –禁用Railgun以匹配URL。
- Disable Security –禁用匹配URL的安全功能。
- Edge Cache TTL –指定邊緣快取TTL(資產在Cloudflare的邊緣網路上快取的時間量)。
- Email Obfuscation –啟用或禁用Cloudflare的電子郵件混淆指令碼,該指令碼通過擾亂電子郵件地址來減少成功的機器人抓取。
- Forwarding URL –建立一個301或302重定向到另一個URL。
- IP Geolocation Header –啟用或禁用Cloudflare的IP地理位置HTTP標頭。
- Opportunistic Encryption –允許客戶端通過安全的TLS通道訪問HTTP URL。
- Origin Cache Control –指定您希望Cloudflare如何響應源伺服器的“Cache-Control”指令。
- Rocket Loader –在匹配的URL上啟用或禁用Rocket Loader。
- Security Level –指定匹配URL的安全級別。
- Server Side Excludes –
<!--sse-->
啟用或禁用Cloudflare的“伺服器端排除”功能,該功能可讓您通過在標籤中包裝HTML來隱藏可疑流量中的敏感資訊。 - SSL –指定匹配URL的SSL級別(disabled, flexible, full, or full strict)。
Cloudflare WordPress外掛
Cloudflare團隊維護一個官方的WordPress外掛。雖然這個外掛不是絕對要求,但它確實提供了一些不錯的功能,包括WordPress優化的Cloudflare設定、WordPress特定的安全規則集、自動快取清除、HTTP/2伺服器推送等。
Cloudflare WordPress外掛設定
WordPress的Cloudflare自動平臺優化
Cloudflare的WordPress自動平臺優化 (APO)是針對WordPress網站的專用效能優化服務。Cloudflare APO的工作原理是直接在Cloudflare邊緣網路上快取您的WordPress站點的HTML頁面。這是對CDN上靜態資產(CSS、JS、影象等)的典型快取的一大飛躍。在我們的基準測試中,我們發現啟用Cloudflare APO會導致效能提高70-300%,具體取決於測試位置。
Cloudflare APO for WordPress通過將頁面的HTML副本儲存在Workers KV中來工作,Workers KV是一種全球分佈的鍵值儲存服務。啟用APO後,對您站點的請求將由Workers KV或Cloudflare的邊緣快取而不是您的源伺服器提供服務。這是WordPress效能領域向前邁出的一大步,因為有了APO,WordPress站點不再受源伺服器位置的限制。
在Cloudflare儀表盤中為WordPress啟用自動平臺優化
以前,使用傳統的CDN設定,HTML頁面仍然必須由源伺服器提供服務。例如,如果您網站的源伺服器位於美國,則來自倫敦的訪問者必須等待從美國傳送的HTML文件。使用APO,HTML和其他靜態資產由靠近倫敦的Cloudflare資料中心提供。
Cloudflare APO與傳統部落格、新聞站點、登入頁面和其他不依賴動態功能的站點(WooCommerce商店、論壇等)最相容。APO會自動繞過Cloudflare對登入使用者和包含某些cookie的頁面(例如WooCommerce)的HTML快取。APO作為Cloudflare Pro、Business和Enterprise計劃的免費服務提供。對於免費的Cloudflare使用者,APO是每月5美元的附加元件。
如果您有興趣瞭解有關Cloudflare APO的更多資訊,請在此處檢視我們的深入指南。
Cloudflare Argo和Railgun
Cloudflare提供額外的效能產品,可能有助於進一步提升您的WordPress網站的效能。這些功能需要支付額外費用,但如果您想在網站優化方面加倍努力,它們可能值得一看。
Argo
Argo是一項Cloudflare附加服務,可為您的網站提供“智慧路由”。啟用Argo後,流量將圍繞Cloudflare網路中的擁塞區域進行路由。在我們的測試中,Argo將頁面載入時間減少了20-30%。如果您是Cloudflare使用者,希望在效能優化方面更加努力,那麼試用Argo可能會產生積極的結果。
Railgun
Cloudflare的Railgun是一種WAN產品,可在您的伺服器和Cloudflare的伺服器之間建立安全隧道。Railgun旨在通過僅提供請求之間的整體差異來加速未快取內容的交付。例如,如果頁面A和頁面B具有相同的頁首和頁尾結構,但正文內容不同,Railgun會意識到這一點,並僅通過高度壓縮的二進位制資料流來處理差異。
Railgun僅適用於Cloudflare的商業和企業計劃,並且需要您的網路主機在您站點的伺服器上安裝其他軟體。對於大多數使用者來說,使用Cloudflare保持快速載入時間不需要Railgun加速。但是,如果您正在執行無法快取的高流量WooCommerce商店或論壇,Railgun可能有助於提高您的網站速度。
如何為WordPress多站點配置Cloudflare
如果您將Cloudflare與WordPress多站點一起使用,則在設定時應考慮一些特殊注意事項。
SSL設定
為了演示適用於WordPress多站點的Cloudflare SSL設定,我們建立了一個測試子域多站點,因為如果您使用子目錄多站點,您應該不會遇到任何SSL問題。
這是我們的測試子域WordPress多站點的結構:
- 主站點 – brianwp.com和www.brianwp.com
- 子站點 1 – site1.brianwp.com
- 子站點 2 – site2.brianwp.com
首選,我們需要為多站點新增了域。
同樣,域已在Cloudflare中配置了適當的A記錄。Cloudflare代理也已啟用,如橙色雲圖示所示。
WordPress多站點的Cloudflare DNS記錄
要在Ful (Strict) SSL模式下使用Cloudflare,所有關聯的域都必須存在於源伺服器的SSL證書上。有兩種方法可以做到這一點。
讓我們加密或付費SSL
如果您的主機支援免費的Let’s Encrypt SSL,請繼續生成涵蓋所有多站點域的SSL證書。
在寶塔面板上,你可以輕鬆生成涵蓋所有域的SSL證書。
在寶塔面板中為您的多站點生成SSL證書
Cloudflare Origin SSL證書
或者,您可以生成涵蓋多站點域的Cloudflare Origin SSL證書。要生成原始證書,請導航到SSL/TLS > Origin Server,然後單擊“Create Certificate”。
生成Cloudflare原始證書
原始證書生成選單分為三個部分。在第一部分中,選擇“Let Cloudflare generate a private key and a CSR”,除非您有特定理由提供自己的憑據。
在第二部分中,輸入SSL證書需要覆蓋的域和子域。您只能為Cloudflare帳戶中的域生成證書。
最後,在第三部分,選擇證書有效期。
設定包含所有多站點域的正確SSL證書後,您將能夠在推薦的Full (Strict) SSL模式下使用Cloudflare。如果您將來需要向多站點新增其他域或子域,請務必生成涵蓋其他域的新SSL證書。
WordPress多站點的頁面規則
Cloudflare的其他安全和效能功能全域性適用於您的根域下的所有子域。換句話說,如果我們的主站點brianwp.com啟用了CSS縮小,那麼site1.brianwp.com和site2.wpbrianli.com也將啟用它。
在某些情況下,此預設行為可能會導致問題。例如,您可能不想僅僅因為它與單個子站點不相容而全域性禁用HTML、CSS和JS優化。要解決此問題,您可以使用自定義頁面規則有選擇地禁用特定子域的功能。
在下面的示例中,我們設定了一個針對*site2.brianwp.com/*
頁面規則. *
字元用於指定萬用字元行為。您可以將其*
視為“這裡的任何東西”。
對於此頁面規則,我們禁用了HTML、CSS和JS的自動縮小,禁用了Rocket Loader,繞過了Cloudflare快取,並關閉了自動HTTPS重寫。
建立選擇性Cloudflare頁面規則以定位WordPress子網站
如果您使用Cloudflare的免費計劃,請注意它僅附帶三個頁面規則。如果您需要對多個子站點進行選擇性調整,則需要升級到Pro計劃或購買額外的頁面規則。
小結
瞭解如何為您的WordPress網站配置Cloudflare以及如何與您的託管堆疊正確整合可以對您的網站速度和安全性產生積極影響。
評論留言