我无法开始使用容器化虚拟主机。设置如下:
我的域名
- 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)进行代理。