当 HTTPS 流量通过 Pound Proxy 转发到 HTTP 页面时,有人见过 HTTP 500 错误吗?

当 HTTPS 流量通过 Pound Proxy 转发到 HTTP 页面时,有人见过 HTTP 500 错误吗?

我们使用 Varnish 作为负载均衡器和常规 HTTP 流量的反向代理缓存。对于 HTTPS 流量,我们使用 Pound 代理来解开 SSL 并转发到 Varnish,然后 Varnish 再转发到后端服务器。这用于我们的“结帐”流程,以加密转换中的信用卡信息。但是,在结帐的最后阶段,用户总是收到 HTTP 500(内部服务器)错误。根据我尝试过的所有测试,这似乎不是由于我们的后端应用服务器造成的。有谁知道这种转换是如何进行的——从 HTTPS 转换回 HTTP 以及 Pound 和 Varnish 之间的交互——以及为什么它会导致 500 错误?

答案1

首先要做的事情是查看 Varnish 是否看到 500。如果看到,那么要么是 Varnish 的问题,要么是后端的问题。如果没有看到,那么您可以集中精力排除 Pound 故障。

要查看 Varnish 在获得 500 时正在做什么,请使用 varnishlog:

varnishlog -co TxStatus 500

答案2

当你得到 500 时,磅数对数表示什么?

您是否使用 cookie 进行结帐,并且您知道 cookie 中保存了多少数据?您可以检查在收到 500 时 cookie 是否被截断,因为 pound 对允许的最大 Cookie 大小,尽管这会根据 pound 的版本而有所不同。您可能希望通过不使用代理来轻松检查 cookie 大小。

相关内容