如何為WordPress配置Cloudflare設置

通過充當網站前面的反向代理,Cloudflare是一種多合一的安全性和性能產品,全球超過12%的網站都在使用它。作為WordPress用戶,向您的網站添加Cloudflare可以幫助提高網站性能並減少惡意機器人和黑客的影響。

#js-mykinsta-video {
背景圖片:url(https://kinsta.com/wp-content/themes/kinsta/images/mykinsta-dashboard-v8@2x.jpg);
}

免費試用

怎麼樣?

正確配置後,對您站點的所有請求都將首先到達Cloudflare伺服器,該伺服器將確定是將請求轉發到原始伺服器,從緩存中提供服務,阻止還是使用自定義規則進行處理。

在本指南中,我們將對WordPress的最佳Cloudflare設置進行更深入的研究,重點介紹Kinsta DNS和Cloudflare DNS之間的區別,討論緩存和安全設置,並向您展示如何為WordPress多站點安裝配置Cloudflare。

Kinsta DNS與Cloudflare DNS

在深入研究Cloudflare設置以及如何為您的WordPress網站正確調整它們之前,讓我們先談一下Kinsta DNS和Cloudflare DNS之間的區別。 Kinsta DNS是我們所有計劃中包含的高級DNS服務,由Amazon的Route53提供支持。 Route53是企業級DNS服務,可提供快速而可靠的解析。

就性能和正常運行時間而言,Cloudflare DNS和Kinsta DNS是可比的-兩者都是出色的服務。兩種服務之間的主要區別是Cloudflare的其他安全性和性能功能。 Kinsta DNS純粹是DNS解決方案,而Cloudflare提供DNS以及充當防火牆,CDN等的可選代理層。

如果您是正在尋找僅DNS服務的Kinsta客戶,則Kinsta DNS是理想的選擇。另一方面,如果您正在尋找基於代理的多合一產品,則Cloudflare是一個不錯的選擇。

如何為WordPress配置Cloudflare設置

Cloudflare提供了多種安全性和性能優勢,但並非所有優勢都與WordPress完全兼容。讓我們深入了解Cloudflare的設置,以確定適用於WordPress網站的最佳功能。

SSL協議

Cloudflare支持SSL / TLS加密的四種模式-關閉,靈活,完全和完全(嚴格)。

  • 關–不加密。

  • 靈活–僅加密瀏覽器和Cloudflare之間的連接。

  • 完全–端到端加密,但允許在原始伺服器上使用自簽名證書。

  • Ful(嚴格)–端到端加密,並且需要Cloudflare的免費原始證書或受信任的CA(證書頒發機構)的證書。我們建議使用完全(嚴格)SSL模式以獲得最大的安全性。

對於希望在其WordPress網站上使用Cloudflare的Kinsta客戶,我們建議在MyKinsta中生成一個免費的Let’s Encrypt SSL證書,並在Cloudflare中使用「完全」或「完全(嚴格)」選項。

或者,您也可以生成Cloudflare原始證書以安裝在原始伺服器上。如果主機不提供免費的SSL證書,則在伺服器上安裝Cloudflare原始證書將允許您使用完全(嚴格)SSL模式。

如果您使用Kinsta在子域上託管網站,而根域在使用Cloudflare的Flexible SSL,則可以使用Cloudflare頁面規則來強制Kinsta託管的子域使用完全或完全(嚴格)SSL。

使用Cloudflare頁面規則為子域啟用完全(嚴格)SSL。

使用Cloudflare頁面規則為子域啟用完全(嚴格)SSL。

此選項可讓您使用Cloudflare的靈活SSL,同時確保針對Kinsta託管的子域的Cloudflare完全(嚴格)SSL。

一律使用HTTPS

我們建議啟用此選項以將所有HTTP請求自動轉發到HTTPS。

HSTS

HSTS代表「 HTTP嚴格傳輸安全性」,用於強制Web瀏覽器使用安全的HTTPS連接。在Cloudflare上啟用HSTS可確保HTTP請求永遠不會到達您的原始伺服器。如果您的站點已設置為使用HTTPS,則建議您也在源伺服器上配置HSTS。

最低TLS版本

TLS(傳輸層安全性)是一種加密協議,允許通過網路安全地傳輸數據。默認情況下,Cloudflare為協議版本設置TLS 1.0。出於合規性目的,某些安全標準(例如PCI DSS 3.2)要求使用TLS協議的最新版本。如果您的站點需要特定的TLS版本,則可以通過轉到SSL / TLS>邊緣證書>最低TLS版本來更改設置。

自動HTTPS重寫

此功能檢查HTML代碼中的HTTP資源URL,以查看它們是否可以通過HTTPS訪問。如果是這樣,它們將自動使用HTTPS變體進行重寫。自動HTTPS重寫對於確保安全的瀏覽體驗而不會出現混合內容錯誤很有用。

藉助正確的Cloudflare設置確保您的網站安全safe在此綜合指南中了解更多?

點擊鳴叫

速度

與性能相關的大多數Cloudflare設置(例如資產最小化和圖像優化)可以在「速度」標籤中找到。

圖像調整大小(僅限企業)

Cloudflare的圖像調整大小功能僅適用於業務計劃用戶。在您的WordPress主題中正確實現後,此功能可用於將生成的圖像縮略圖卸載到Cloudflare。與WordPress中的內置縮略圖生成功能相比,它具有多個優點。

對於動態動態生成圖像大小的網站,使用Cloudflare的圖像調整大小功能可以減少CPU使用率–這使您的網站可以為更多的並發用戶提供服務,而不會增加CPU資源。調整Cloudflare圖像的大小還有助於減少磁碟空間使用,因為不必將縮略圖存儲在伺服器上。

Cloudflare圖像調整大小的工作原理是在圖像之前添加端點。看下面的示例,該示例顯示了該功能的工作原理。

原始圖片網址

https://yourdomain.com/wp-content/uploads/2020/01/picture.jpg

調整大小的圖片網址

https://yourdomain.com/cdn-cgi/image/fit=contain,format=auto,metadata=none,onerror=redirect,quality=70,width=720/https://yourdomain.com/wp-content/上傳/2020/01/picture.jpg

可以調整「 width」參數以動態生成不同的縮略圖大小,而無需在源伺服器上增加任何其他資源。如果您正在尋找類似於Cloudflare圖像大小調整功能的獨立服務,則Imgix和Cloudinary是不錯的選擇。

不要忘記查看我們關於優化網路圖像的深入指南。

波蘭語(僅限專業人士)

Cloudflare Polish是一種圖像優化服務,可自動壓縮JPG,PNG,GIF和其他圖像文件。圖片是在Cloudflare的邊緣進行處理的,這意味著託管WordPress網站的伺服器沒有性能負擔。波蘭語還支持Google的WEBP格式-這意味著經過優化的WEBP圖像將自動提供給Chrome,Brave和其他支持該格式的瀏覽器。

出於某些原因,波蘭語是WordPress網站有用的功能。如果您使用的圖像優化插件如ShortPixel或Imagify,波蘭語可以大大降低伺服器的CPU使用率-這可以為訪問者帶來更穩定的瀏覽體驗。由於波蘭語優化的圖像是在伺服器外存儲和緩存的,因此您不必擔心會佔用磁碟空間來存儲圖像的WEBP版本。

自動縮小

Cloudflare的自動縮小功能會自動縮小緩存的CSS,JSS和HTML資產。如果您不使用諸如Autoptimize或WP-Rocket之類的WordPress插件來縮小資產,我們建議在Cloudflare中啟用自動縮小功能。

布羅特利

Brotli是GZIP的替代方案,GZIP是一種壓縮演算法,可在將Web請求提供給訪問者之前減小其大小。與GZIP相比,Brotli提供了更高的壓縮率,從而為用戶帶來了更快的頁面載入速度。問題是,並非所有的Web瀏覽器都支持Brotli壓縮。無論如何,我們建議啟用Cloudflare的Brotli功能,因為來自不受支持的瀏覽器的請求將僅回落到GZIP壓縮。

使用WordPress,我們的流量增長了1,187%。
我們將向您展示如何。
加入20,000多個其他人,他們每周都會收到有關WordPress內部技巧的新聞!

          現在訂閱
        
        
          
            
            成功!感謝您的訂閱

您將在一周內收到下一期的Kinsta新聞通訊。

訂閱Kinsta新聞通訊
        
  
    
      

    
      
        訂閱
    
  
  
    

我同意條款和條件以及隱私政策

  

      

增強的HTTP / 2優先順序(僅限Pro)

HTTP / 2的引入通過並行化和多路復用大大提高了網站的性能。 Cloudflare增強的HTTP / 2優先順序排序功能通過智能地解析您網站的HTML來確定載入資產的順序,以實現最佳性能,從而使這一步驟更進一步。根據Cloudflare的說法,增強的HTTP / 2優先順序可以將頁面載入時間最多減少50%。

幻影(僅限專業人士)

Mirage是一種針對移動和低帶寬連接的圖像優化功能。啟用Mirage後,在初始頁面載入期間,圖像將被低解析度的佔位符替換。頁面載入後,全解析度圖像將被延遲載入。

Mirage還能夠將多個圖像請求合併為一個請求,從而減少了完全載入頁面所需的往返次數。如果您的站點使用大量圖像並針對大量移動人口,那麼Cloudflare Mirage可能會對性能產生積極影響。

火箭裝載機

Rocket Loader是一項功能,可通過非同步載入JavaScript資源來加快載入時間。這樣可以有效減少頁面的渲染阻止內容,從而縮短頁面載入時間。我們建議您在啟用了Rocket Loader的情況下測試您的網站,看看它是否可以提高頁面速度。如果您的WordPress網站依賴於按特定順序載入JavaScript資產,則可以通過在腳本標籤中添加data-cfasync =「 false」屬性來繞過Rocket Loader。

快取

默認情況下,Cloudflare緩存靜態資產,例如CSS,JS和圖像文件。請注意,默認情況下,Cloudflare不會緩存您網站生成的HTML。

緩存級別

我們建議將緩存級別保留為「標準」,以允許使用唯一的查詢字元串訪問資產的更新版本。

瀏覽器緩存過期

對於Kinsta託管的網站,我們建議將瀏覽器緩存過期設置設置為「尊重現有標題」。這會將靜態資產在瀏覽器緩存中保留一年。如果您想以更短的有效時間來替代此設置,請隨時更改此設置。

防火牆功能

在Kinsta上,我們使用Google Cloud Platform的企業級防火牆來保護WordPress網站免受惡意流量的侵害。 Kinsta客戶可以使用MyKinsta儀錶板中的IP Deny工具來阻止特定的IP地址,而我們的支持團隊可以添加更複雜的防火牆規則(如國家/地區級別的阻止)。

如果您的主機未提供可自定義的防火牆,則Cloudflare的免費計劃包括一個基本防火牆,該防火牆允許五個自定義規則。可以將防火牆規則配置為阻止特定的IP地址,用戶代理,請求方法,HTTP引薦來源甚至國家。

例如,如果您發現自己的WooCommerce商店收到了來自目標市場以外國家/地區的大量假訂單,則可以使用Cloudflare的免費防火牆阻止來自整個國家/地區的流量。

Cloudflare的Pro計划具有更強大的Web應用程序防火牆(WAF)。 WAF提供專門的託管規則集,有助於進一步保護您的站點。例如,有一些針對WordPress和PHP網站的規則集。

適用於WordPress的Cloudflare管理的規則集。

適用於WordPress的Cloudflare託管規則集。

對於大多數WordPress網站而言,Cloudflare的免費計劃提供的安全級別已足夠。但是,如果您正在運行的任務關鍵型業務站點需要更多保護,則Cloudflare的專業級WAF和託管規則集可以幫助進一步保護您的站點。

(建議閱讀:Sucuri vs Wordfence)

網路

在Cloudflare的「網路」設置中,我們建議啟用HTTP / 2,HTTP / 3(帶有QUIC)和0-RTT連接恢復。

如前所述,HTTP / 2通過並行化和多路復用對HTTP / 1.1進行了一些改進。同樣,HTTP / 3通過使用稱為QUIC的基於UDP的新協議而不是傳統的TCP進一步擴展了HTTP / 2的性能。

網路標籤中的WordPress的Cloudflare設置。

啟用HTTP / 2,HTTP / 3和0-RTT連接恢復。

安全的HTTP / 3連接還可以從優化的握手常式中受益,該常式可以縮短連接時間。在Cloudflare儀錶板中啟用HTTP / 3後,受支持的客戶端將能夠使用HTTP / 3連接到Cloudflare伺服器。

最後,Cloudflare的0-RTT連接恢復功能可縮短以前連接到您網站的訪問者的載入時間。

頁面規則

Cloudflare的頁面規則功能可讓您自定義特定URL的設置。頁面規則可用于禁用某些資產的緩存,更改所選頁面的安全級別等。頁面規則最流行的用例之一是將Cloudflare配置為「緩存所有內容」。

使用Cloudflare頁面規則緩存HTML

Cloudflare僅緩存CSS,JS和圖像文件等靜態資產。為了安全起見,Cloudflare默認情況下不緩存HTML。 WordPress和其他基於CMS的網站是動態的,因為它們需要在安全的後端環境中進行管理。啟用HTML緩存後,這些安全的後端頁面將被緩存並顯示給任何用戶-登錄或註銷。

在Cloudflare中添加頁面規則。

在Cloudflare中添加頁面規則。

可以通過添加帶有覆蓋整個網站的通配符的頁面規則來配置Cloudflare的「緩存所有內容」設置:* kinstalife.com / *啟用「全部緩存」功能後,Cloudflare將在其數據中心網路中緩存您網站的HTML頁面世界。

啟用了「緩存所有內容」的網站-請注意cf-cache-status標頭。

啟用了「緩存所有內容」的網站-請注意cf-cache-status標頭。

通常,除非您的站點是靜態站點,否則我們不建議您將Cloudflare配置為緩存所有內容。例如,由靜態網站生成器(如Gatsby和Hugo)生成的大多數網站沒有動態功能,這些功能可能會因全頁緩存而中斷。

繞過Cookie的緩存

話雖如此,絕對有可能配置Cloudflare設置以緩存WordPress網站上的所有內容。 Cloudflare的業務計劃可讓您創建繞過特定Cookie緩存的頁面規則。

通過調整Cloudflare設置以繞過WordPress的wordpress_logged_in cookie,將不會緩存已登錄的請求。同樣,對於WooCommerce網站,繞過woocommerce_items_in_cart和wp_woocommerce_session_之類的Cookie的緩存也很有用。

指定緩存控制標頭

選擇性繞過Cloudflare緩存的另一種方法是在滿足特定條件時使用PHP添加緩存控制響應標頭。為使此方法起作用,您需要在「全部緩存」頁面規則中啟用原始緩存控制。

在Cloudflare頁面規則中啟用原始緩存控制。

在Cloudflare頁面規則中啟用原始緩存控制。

啟用原始緩存控制將迫使Cloudflare尊重Web伺服器(例如Nginx)和伺服器端應用程序(例如PHP和WordPress)的響應標頭。為了防止Cloudflare緩存某些頁面,可以將以下響應標頭添加到WordPress主題模板文件中。或者,也可以將代碼修改為在您的functions.php文件中工作。

如果將此代碼添加到single.php文件的頂部,Cloudflare將不會緩存您的單個帖子和頁面。此代碼也可以包裝在邏輯語句中,以在某些條件下觸發。例如,將此代碼與is_user_logged_in()函數一起使用將確保Cloudflare不緩存已登錄用戶的頁面。

作為示例,我們將以下代碼添加到header.php文件中。當用戶登錄時,此PHP代碼將為我們的所有頁面添加緩存控制和編譯指示響應標頭。

檢查登錄請求的響應頭,我們看到了。

緩存控制:不存儲,不緩存,必須重新驗證,最大年齡= 0
緩存控制:檢查後= 0,檢查前= 0
CF緩存狀態:BYPASS
CF-射線:588140b43a4f74a7-IAD
cf-request-id:0244a6c4a0000074a7bdb0e200000001
連接:保持活動狀態
內容編碼:gzip
內容類型:text / html;字符集= UTF-8
日期:2020年4月22日,星期三18:01:54 GMT
過期:格林尼治標準時間1984年1月11日星期三05:00:00
鏈接: ; rel =「 https://api.w.org/」
語法:無緩存
伺服器:cloudflare
傳輸編碼:分塊
有所不同:接受編碼
X-Content-Type-Options:nosniff
X-Kinsta緩存:BYPASS

與註銷的用戶查看同一頁面會產生這些響應標題。

世界上一些最大的品牌和行業都依賴Kinsta的企業WordPress託管。從初創公司到代理商,再到《財富》 500強公司。準備開始了嗎?查看我們的計劃

年齡:5
CF緩存狀態:HIT
CF-射線:5881420dad7d74a7-IAD
cf-request-id:0244a79c8d000074a7bd820200000001
連接:保持活動狀態
內容編碼:gzip
內容類型:text / html;字符集= UTF-8
日期:2020年4月22日,星期三18:02:49 GMT
鏈接: ; rel =「 https://api.w.org/」
伺服器:cloudflare
傳輸編碼:分塊
有所不同:接受編碼
X-Content-Type-Options:nosniff
X-Kinsta緩存:BYPASS

如您所見,這裡有一個CF-Cache-Status:HIT標頭,指示該頁面正在從Cloudflare的緩存中提供。

如果您有興趣為您的WordPress網站設置「緩存所有內容」功能,我們建議與具有Cloudflare和WordPress經驗的開發人員合作,確定基於cookie的繞過還是伺服器端緩存控制標頭生成是更好的選擇為您的WordPress網站。

在某些情況下,這兩種方法可能需要同時實施。

Cloudflare Argo和Railgun

Cloudflare提供了其他性能產品,這些產品可能有助於進一步提高WordPress網站的性能。這些功能需要支付額外費用,但如果您想進一步優化網站,可能值得一看。

Argo

Argo是一項Cloudflare附加服務,可為您的網站提供「智能路由」。啟用Argo後,流量將繞過Cloudflare網路中的擁擠區域。在我們的測試中,Argo將頁面載入時間減少了20-30%。如果您是Cloudflare用戶,希望在性能優化方面付出更多努力,那麼嘗試Argo可能會產生積極的結果。

軌道炮

Cloudflare的Railgun是WAN產品,可在您的伺服器和Cloudflare的伺服器之間建立安全的隧道。 Railgun旨在通過僅交付請求之間的總體差異來加快未緩存內容的交付。例如,如果頁面A和頁面B具有相同的頁眉和頁腳結構,但正文內容不同,Railgun將意識到這一點,並且僅通過高度壓縮的二進位數據流來提供區別。

Railgun僅在Cloudflare的業務和企業計劃中可用,並且需要您的虛擬主機在站點的伺服器上安裝其他軟體。對於大多數用戶而言,使用Cloudflare保持快速載入時間不是必需的Railgun加速。但是,如果您經營的是流量旺盛的WooCommerce商店或論壇,且無法緩存,那麼Railgun可能會幫助您提高網站速度。

Cloudflare WordPress插件

Cloudflare團隊維護一個官方WordPress插件。儘管此插件不是絕對必要的,但它確實提供了一些不錯的功能,包括WordPress優化的Cloudflare設置,WordPress特定的安全規則集,自動緩存清除,HTTP / 2伺服器推送等。

對於高級用戶,我們建議不要安裝插件,並在Cloudflare儀錶板中配置設置,以防止與自定義頁面規則衝突。

如何為WordPress多站點配置Cloudflare設置

如果將Cloudflare與WordPress多站點一起使用,則在設置時應考慮一些特殊注意事項。

SSL設置

為了展示適用於WordPress多站點的Cloudflare SSL設置,我們創建了一個測試子域多站點,因為如果您使用子目錄多站點,則不會遇到任何SSL問題。

這是我們的測試子域WordPress多站點的結構:

  • 主站點– brianwp.com和www.brianwp.com
  • 子站點1 – site1.brianwp.com
  • 子網站2 – site2.brianwp.com

在MyKinsta中,我們為多站點添加了域。

MyKinsta中的多站點域。

MyKinsta中的多站點域。

同樣,在Cloudflare中為域配置了正確的A記錄。如橙色雲圖標所示,Cloudflare代理也已啟用。

WordPress多站點的Cloudflare DNS記錄。

WordPress多站點的Cloudflare DNS記錄。

要在完全(嚴格)SSL模式下使用Cloudflare,原始伺服器的SSL證書上必須存在所有關聯的域。有兩種方法可以做到這一點。

讓我們加密或付費SSL

如果您的主機支持免費的Let’s Encrypt SSL,請繼續並生成一個涵蓋您所有多站點域的SSL證書。

在Kinsta上,使用MyKinsta儀錶板中的「讓我們加密」工具可以輕鬆生成涵蓋所有域的SSL證書。

為MyKinsta中的多站點生成SSL證書。

為MyKinsta中的多站點生成SSL證書。

Cloudflare來源SSL證書

或者,您可以生成一個涵蓋您的多站點域的Cloudflare來源SSL證書。要生成原始證書,請導航至SSL / TLS>原始伺服器,然後單擊「創建證書」。

生成Cloudflare原始證書。

生成Cloudflare原始證書。

原始證書生成菜單分為三個部分。在第一部分中,選擇「讓Cloudflare生成私鑰和CSR」,除非有特殊原因需要提供自己的憑據。

在第二部分中,鍵入SSL證書需要涵蓋的域和子域。您只能為Cloudflare帳戶中的域生成證書。

最後,在第三部分中,選擇證書有效期。

設置包含所有多站點域的適當SSL證書後,您將可以在建議的完全(嚴格)SSL模式下使用Cloudflare。如果將來需要在您的多站點中添加其他域或子域,請確保生成一個涵蓋其他域的新SSL證書。

WordPress多站點的頁面規則

Cloudflare的其他安全性和性能功能全局適用於您根域下的所有子域。換句話說,如果為我們的主網站brianwp.com啟用了CSS縮小功能,那麼site1.brianwp.com和site2.wpbrianli.com也將啟用CSS縮小功能。

在某些情況下,這種默認行為可能會導致問題。例如,您可能不希望僅由於與單個子網站不兼容而全局禁用HTML,CSS和JS優化。要解決此問題,您可以使用自定義頁面規則來有選擇地禁用特定子域的功能。

在下面的示例中,我們設置了一個針對* site2.brianwp.com / *的頁面規則。 *字元用於指定通配符行為。您可以將*視為「此處的所有內容」。

對於此頁面規則,我們禁用了HTML,CSS和JS的自動縮小功能,禁用了Rocket Loader,繞過了Cloudflare緩存,並關閉了HTTPS自動重寫功能。

創建選擇性Cloudflare頁面規則以WordPress子網站為目標。

創建選擇性Cloudflare頁面規則以WordPress子網站為目標。

如果您使用的是Cloudflare的免費計劃,請注意,它僅隨附三個頁面規則。如果您需要對多個子網站進行選擇性調整,則需要升級到Pro計劃或購買其他頁面規則。

想要提高網站性能並減少?bot和?‍♀️黑客嗎?這些Cloudflare設置非常適合#WordPress用戶!

點擊鳴叫

摘要

了解如何為您的WordPress網站配置Cloudflare設置以及如何與託管堆棧正確集成可以對您的網站速度和安全性產生積極影響。

無論您是一家單人商店還是擁有數百名客戶的全方位服務代理商,Cloudflare都是一項安全性和性能服務,可提供巨大的價值。當與WordPress正確配對並以超快的速度與主機配對時,樂趣就從此開始!

如果您喜歡這篇文章,那麼您會喜歡Kinsta的WordPress託管平台。加速您的網站並獲得我們經驗豐富的WordPress團隊的24/7支持。我們基於Google Cloud的基礎架構專註於自動擴展,性能和安全性。讓我們向您展示Kinsta的與眾不同!查看我們的計劃

相關文章