Caching Cloudflare(和其他基于DNS的CDN)-使用身份验证进行缓存

Caching Cloudflare(和其他基于DNS的CDN)-使用身份验证进行缓存,caching,cdn,cloudflare,Caching,Cdn,Cloudflare,我们有一个具有HTTP身份验证的测试服务器 Cloudflare正用于进行CDN缓存 测试服务器已获得身份验证,以避免被Google索引(因为robots.txt文件偶尔会被删除!) 如果我们在此服务器上进行身份验证,Cloudflare是否能够缓存内容 如果是,它是如何做到的?我以为内容会直接在服务器和浏览器之间传输。我不是cloudflare CDN方面的专家。但让我大致告诉您这是如何工作的,或者它在Akamai中是如何工作的 如果你有一个认证保护的网站,说 因此,当请求被发送到CDN时。C

我们有一个具有HTTP身份验证的测试服务器

Cloudflare正用于进行CDN缓存

测试服务器已获得身份验证,以避免被Google索引(因为robots.txt文件偶尔会被删除!)

如果我们在此服务器上进行身份验证,Cloudflare是否能够缓存内容


如果是,它是如何做到的?我以为内容会直接在服务器和浏览器之间传输。

我不是cloudflare CDN方面的专家。但让我大致告诉您这是如何工作的,或者它在Akamai中是如何工作的

如果你有一个认证保护的网站,说

因此,当请求被发送到CDN时。CDN将检查传入请求是否具有它可以理解的令牌(Cookie)。如果没有,它会将请求发送到您的源服务器。但在执行此操作之前,它将附加类似于/token.php?return=/admin的内容

现在,源服务器将对用户进行身份验证。一旦完成,它将在origin server中执行token.php,这将生成一个唯一的加密令牌以及其他应用程序cookie。基本上,您在此token.php中用于生成加密cookie的密钥与您在CDN配置中添加的密钥相同

因此,为/admin传入的下一个请求将有一个cdn令牌,cdn将使用您在cdn配置中拥有的密钥(与原始密钥相同)验证该令牌的真实性。如果成功,它将从缓存中为内容提供服务器

注意:确保CDN令牌到期时间小于应用程序cookie。
假设您的应用程序会话cookie为8小时,那么最好将cdn cookie设置为1小时左右。通过此CDN,您将每小时与您的源站联系一次,并更新其令牌。希望我没有让它更混乱;-)

我不是cloudflare CDN方面的专家。但让我大致告诉您这是如何工作的,或者它在Akamai中是如何工作的

如果你有一个认证保护的网站,说

因此,当请求被发送到CDN时。CDN将检查传入请求是否具有它可以理解的令牌(Cookie)。如果没有,它会将请求发送到您的源服务器。但在执行此操作之前,它将附加类似于/token.php?return=/admin的内容

现在,源服务器将对用户进行身份验证。一旦完成,它将在origin server中执行token.php,这将生成一个唯一的加密令牌以及其他应用程序cookie。基本上,您在此token.php中用于生成加密cookie的密钥与您在CDN配置中添加的密钥相同

因此,为/admin传入的下一个请求将有一个cdn令牌,cdn将使用您在cdn配置中拥有的密钥(与原始密钥相同)验证该令牌的真实性。如果成功,它将从缓存中为内容提供服务器

注意:确保CDN令牌到期时间小于应用程序cookie。
假设您的应用程序会话cookie为8小时,那么最好将cdn cookie设置为1小时左右。通过此CDN,您将每小时与您的源站联系一次,并更新其令牌。希望我没有让它更混乱;-)

CF应该传递身份验证,并缓存静态资源。CF应该传递身份验证,并缓存静态资源。Re
附加类似/token.php的内容?return=/admin
,您是指URL吗?还是饼干?如果它是URL,那么这不存在破坏web应用程序的风险。如果是cookie,那么我将使用相同的逻辑。我不清楚您所说的在origin server中执行token.php是什么意思。这个文件肯定不会存在于源服务器上。您好,token.php只是一个例子,它也可能是任何其他编程版本的文件。通常,此文件由CDN提供商提供。基本上,此文件将在用户在origin中进行身份验证后生成cookie,并在用户浏览器中设置cookie,以便下次浏览器发出请求时,CDN知道这是一个真实的用户。在我的示例中,当从origin请求/token.php?return=/admin时,此token.php在身份验证后执行此操作,原始服务器将点击php文件,该文件将生成cookie,然后从/token.php?return=/admin重定向到您的原始请求/admin。Re
附加类似/token.php?return=/admin的内容,您是指URL吗?还是饼干?如果它是URL,那么这不存在破坏web应用程序的风险。如果是cookie,那么我将使用相同的逻辑。我不清楚您所说的在origin server中执行token.php是什么意思。这个文件肯定不会存在于源服务器上。您好,token.php只是一个例子,它也可能是任何其他编程版本的文件。通常,此文件由CDN提供商提供。基本上,此文件将在用户在origin中进行身份验证后生成cookie,并在用户浏览器中设置cookie,以便下次浏览器发出请求时,CDN知道这是一个真实的用户。在我的示例中,当从origin请求/token.php?return=/admin时,此token.php在身份验证后执行此操作,origin server将命中将生成cookie的php文件,然后从/token.php?return=/admin重定向到您的原始请求/admin。