![Apache ProxyPass 在 Kubernetes 集群中提供服务](https://linux22.com/image/1592479/Apache%20ProxyPass%20%E5%9C%A8%20Kubernetes%20%E9%9B%86%E7%BE%A4%E4%B8%AD%E6%8F%90%E4%BE%9B%E6%9C%8D%E5%8A%A1.png)
我对位于 Kubernetes 集群中的服务的 ProxyPass 存在问题(同样,位于域名敏感代理之后)。
这是我的配置:
<LocationMatch "/service2">
ProxyPass http://service2.mycluster.org Keepalive=On
</LocationMatch>
当我调用此服务时,我得到了 503。
独立服务器应用程序的类似配置有效:
<LocationMatch "/service1">
ProxyPass http://myserver.org:8012 Keepalive=On
</LocationMatch>
现在我唯一想到的是 Apache 正在向解析的 IP 发出请求,而不是域名。
因为使用 IP 向我的独立服务器发出的请求会起作用:
curl -f http://<myserverip>:8012
而集群将会失败
curl -f http://<myclusterip>
因为该域名(service2.mycluster.org)用于内部调度。
我是不是忽略了某些显而易见的东西?我在文档中找不到任何提示,我以为 ProxyPass 应该可以立即使用。
答案1
在我看来,您缺少 ProxyPassReverse 指令。每个 proxypass 指令通常都需要与 Apache Config 中的类似 proxypassreverse 指令配合使用。