Apache ProxyPass Docker 容器返回 503

Apache ProxyPass Docker 容器返回 503

我无法开始使用容器化虚拟主机。设置如下:

我的域名

  • Ubuntu VPS(digitalOcean,用于上下文),预安装 Docker
    • 阿帕奇容器(反向代理),客户机端口 80 到主机 80
    • Web 应用程序容器(运行 apache),来宾端口 80 至主机 8081

Apache 服务正常,apache 信息页面显示在 mydomain.com 上,web-app 显示在 mydomain.com:8081 上

问题是尝试通过 ProxyPass sub.mydomain.com 为 mydomain.com:8081 提供服务

我已经设计了以下 sites-available/sub.mydomain.com.conf阿帕奇容器。

<VirtualHost *:80>
ServerName sub.mydomain.com
ProxyPreserveHost on
ProxyRequests off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass           "/" "http://localhost:8081/" retry=0
ProxyPassReverse    "/" "http://localhost:8081/"

但是,sub.mydomain.com 返回 503 错误。

我还在 digitalOcean 中添加了以下 DNS 记录: - CNAME:*.mydomain.com 是 mydomain.com 的别名 - A:sub.mydomain.com 指向 [DROPLET IP]

我也尝试过:替换“localhost”:

ProxyPass           "/" "http://localhost:8081/" retry=0
ProxyPassReverse    "/" "http://localhost:8081/"

我的域名液滴IProute以及从内部执行返回的[网关] ip阿帕奇容器。更改这些值要么会导致相同的 503 错误,要么导致页面持续加载,而不会返回任何错误也不请求的页面。我不知道下一步该怎么做,任何帮助都非常感谢。设置太多了,我认为更有经验的人可能会指出我哪里出错了。提前谢谢!

答案1

在代理容器中,您不能使用 localhost:8081 作为代理地址。localhost 实际上是容器本身的环回地址,而不是您的主机服务器,并且那里没有任何内容在端口 8081 上监听(导致 503)。

我的建议是仅为您的服务使用 docker,并使用标准 apache(或更好的 nginx)进行代理。

相关内容