2017-02-23 30 views
1

我們有一個具有HTTP身份驗證的測試服務器。Cloudflare(以及其他基於DNS的CDN) - 使用Auth緩存

Cloudflare正被用於做CDN緩存。

測試服務器已通過身份驗證以避免被Google索引(因爲robots.txt文件偶爾會被刪除!)。

如果我們在此服務器上進行身份驗證,Cloudflare是否可以緩存內容?

如果是這樣,它是如何做到這一點?我認爲內容將直接在服務器和瀏覽器之間傳輸。

+0

CF應該通過身份驗證,並緩存靜態資源。 – Jules

回答

0

我不是cloudflare CDN的專家。但是讓我總體告訴你這是如何工作的或者它在Akamai中的工作原理。

如果你有一個認證保護的網站說https://secure.test.com/admin

因此當請求被髮送到CDN。 CDN將檢查傳入的請求是否有可以理解的令牌(Cookie)。如果沒有,那麼它會將請求發送到您的原始服務器。但在這之前,它會附加類似/token.php?return=/admin的內容

現在原始服務器會對用戶進行身份驗證。一旦完成,它將在原始服務器中執行token.php,它將與其他應用程序cookie一起生成一個唯一的加密標記。基本上,您在此token.php中用於加密cookie生成的密鑰將與您在CDN配置中添加的密鑰相同。

因此,下一個進入/ admin的請求將有一個cdn令牌,cdn將使用您在CDN配置中具有的密鑰(與源的相同)驗證其真實性。如果成功,它將從其緩存中提取內容。

注意:確保CDN令牌過期小於應用程序cookie。 說你的應用程序會話cookie是8小時,然後最好把cdn cookie設置爲1小時左右。通過這個CDN將在一個小時內聯繫你的原產地,並重新獲得它的令牌。希望我沒有使它更加混亂;-)

+0

重新附加'/token.php?return =/admin'之類的東西,你的意思是這個URL嗎?或者cookie?如果它是URL,那麼這不會冒險破壞Web應用程序。如果它是cookie,那麼我會使用相同的邏輯。 – Snowcrash

+0

而我不清楚你在'origin server'執行token.php是什麼意思。當然這個文件不會存在於原始服務器上。 – Snowcrash

+0

你好,以及token.php只是一個例子,它也可以是任何其他的編程版本文件。通常這個文件是由CDN提供商提供的。基本上這個文件會在用戶通過身份驗證並在用戶瀏覽器中設置cookie後生成一個cookie,以便下次瀏覽器發出請求時,CDN知道這是一個真實用戶。 – Vinod