当后端运行正常时,Varnish 会抛出 503 错误

当后端运行正常时,Varnish 会抛出 503 错误

我已经使用 Passenger 设置了我的 Web 服务器,通过 Nginx 为 Rails 应用提供服务。我想将 Varnish 放在 Nginx 前面来缓存网页,因为 Passenger 创建页面需要花费不少时间。
我编译了 Varnish,并使用以下命令运行它

varnishd -a [外部IP已删除]:80 -b 127.0.0.1:443 -F

但是,当我访问外部 IP 时,我看到的是 503 页面和“大师冥想”代码(XID:741199024)。
不知道这是什么意思,但我想我可能配置错了。
有人知道我哪里出错了吗?

非常感谢您抽出时间,非常感谢!
Luke Carpenter

答案1

您是否知道 Varnish 不处理 HTTPS?我不确定您想做什么,但是您的后端监听 443,这有点奇怪。

如果您的流量是 SSL,您可能需要类似 nginx(ssl)-varnish(nossl)-nginx(nossl)-passenger 的配置。这种设置并不罕见,您可以使用相同的 nginx。

答案2

503 通常意味着后端响应不够快,或者在尝试执行请求时连接就关闭了。您可以更改宽限计时器(如果后端已关闭/拒绝连接),更改等待后端获得响应的时间,或者根据您收到 503 的原因修改一些其他设置。

运行 varnishlog(通过管道传输/typescript)并观察这些请求可以告诉你为什么会发生某些事情。你可以指定要监视的 IP 地址,因此,你不需要查看所有经过的流量,只需查看来自你的 IP 的流量即可。

相关内容