首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stunnel + Varnish + Apache问题

Stunnel + Varnish + Apache问题
EN

Server Fault用户
提问于 2013-05-05 11:30:46
回答 1查看 808关注 0票数 2

目前,我正在apache前面运行Varnish,用于所有http流量。为了利用HTTPS连接的缓存,我添加了stunnel。因此,对于HTTPS来说,特技是用清漆进行的,然后再和Apache对话。

问题是,当清漆将缓存的页面返回给stunnel时,stunnel通过HTTPS将其发送给客户端,但其余的资源(如css文件、js文件等)是由客户端通过普通HTTP请求的。我想这是因为缓存的页面包含指向资源的链接,只有HTTP。

我的问题是:

  1. 这是反向ssl代理的常见问题吗?
  2. 有什么办法可以防止这种情况发生吗?
  3. 假设我有一个域,www.example.com,我希望它只能通过HTTPS访问,我还希望http://www.example.com不是返回404,而是重定向到https://www.example.com。如何避免循环(即清漆重定向到阻止,然后再通过HTTP请求页面从清漆,这反过来又重定向到阻碍等等)。是否有任何方法可以让替身插入清漆会寻找的标题,以便在标题存在的情况下不执行任何重定向?
EN

回答 1

Server Fault用户

发布于 2014-12-15 22:16:01

在某些网站中,如果您从HTTP切换到HTTPS版本,您应该通知网站配置,比如“嘿,我们现在就通过HTTPS服务”。嗯,原因是有些网站有硬编码的配置,他们的静态文件URL生成器。因此,即使它们是通过HTTPS提供的,静态资源URL生成器仍然认为我们是通过HTTP进行讨论的。

现在,您怀疑清漆缓存仍然提供旧的内容。猜测可能是真的..。好吧,你可以清除缓存,这样你就可以确认理论了。

若要重定向部件,可以配置清漆,以便它们执行重定向任务。将这一行添加到sub vcl_recv内部的清漆配置中

代码语言:javascript
复制
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逻辑。

摘要

  1. 要解决静态文件URL部分,您应该(1)检查网站配置并通知它,我们现在通过HTTPS提供服务,(2)清除清漆缓存。
  2. 可以通过清漆将HTTP重定向到HTTPS任务
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/505122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档