Apache 反向代理-超时?

Apache 反向代理-超时?

我无法正确配置 Web 服务器的反向代理。我在这里和其他地方查找过类似问题的解决方案,但似乎没有一个对我有帮助。以下是设置:

我有一个 Apache 代理服务器,用于处理环境中虚拟 Web 服务器的请求(全部在 ubuntu 16.04.1 上)。DNS 由外部(Cloudflare)处理并指向我的一个公共 IP 地址。我的目标是让代理服务器将请求传递给正确的虚拟 Web 服务器。

我有一个内部 DNS 服务器,并且已确认虚拟 Web 服务器运行正常(所有服务器都可以访问内部请求),但是当尝试进行外部访问时,我无法解析任何一个服务器。

以下是我对代理服务器虚拟主机的配置:

ServerName foo.com
ProxyRequests off
ProxyPass / http://foo.com/
ProxyPassReverse  / http://foo.com/

这似乎会导致超时。这是我在代理服务器上的 apache 日志中收到的错误:

[proxy_http:error] [pid 28581] (70007)The timeout specified has expired: [client 127.0.0.1:41410] AH01102: error reading status line from remote server foo.com:80, referer: http://foo.com
[proxy:error] [pid 28581] [client 127.0.0.1:41410] AH00898: Error reading from remote server returned by /, referer: http://foo.com

正如其他类似问题所建议的,我在代理服务器上的 apache 配置中添加了以下几行:

SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1

但是,现在外部请求在大约 60 秒后会抛出 502,具体说明:

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.

Reason: Error reading from remote server

我也在代理服务器上为我的虚拟主机尝试过这个:

ServerName foo.com
ProxyRequests off
ProxyPass / http://10.0.0.1/
ProxyPassReverse  / http://10.0.0.1/

这会导致重定向循环。

我很乐意提供有关我的配置的更多详细信息。

答案1

我放弃了最初的配置,因为我认为其中有一些残留的 SSL 配置与代理服务器不合适/不兼容,从而导致重定向循环。重新设置整个代理服务器并重新测试后,得到了预期的结果(通过代理从外部访问 Web 服务器)。

相关内容