目前,我正在apache前面运行Varnish,用于所有http流量。为了利用HTTPS连接的缓存,我添加了stunnel。因此,对于HTTPS来说,特技是用清漆进行的,然后再和Apache对话。
问题是,当清漆将缓存的页面返回给stunnel时,stunnel通过HTTPS将其发送给客户端,但其余的资源(如css文件、js文件等)是由客户端通过普通HTTP请求的。我想这是因为缓存的页面包含指向资源的链接,只有HTTP。
我的问题是:
发布于 2014-12-15 22:16:01
在某些网站中,如果您从HTTP切换到HTTPS版本,您应该通知网站配置,比如“嘿,我们现在就通过HTTPS服务”。嗯,原因是有些网站有硬编码的配置,他们的静态文件URL生成器。因此,即使它们是通过HTTPS提供的,静态资源URL生成器仍然认为我们是通过HTTP进行讨论的。
现在,您怀疑清漆缓存仍然提供旧的内容。猜测可能是真的..。好吧,你可以清除缓存,这样你就可以确认理论了。
若要重定向部件,可以配置清漆,以便它们执行重定向任务。将这一行添加到sub vcl_recv内部的清漆配置中
if (!req.http.X-Forward-For && client.ip !~ localhost) {
set req.http.x-Redir-Url = "https://" + req.http.host + req.url;
error 750 req.http.x-Redir-Url;
}逻辑:如果某个随机IP (其他本地主机)连接到清漆(因为他们仍然使用HTTP版本),则清漆问题重定向到HTTPS。从这个博客中提取的VCL逻辑。
https://serverfault.com/questions/505122
复制相似问题