Nginx 容器化与 Apache 服务器共存

Nginx 容器化与 Apache 服务器共存

我有一个带有 Ubuntu 服务器的 VPS,它正在运行 flask(python)Web 应用程序,使用 UWSGI,通过 Apache 的反向代理,为域“a.com”服务。

Flask 应用程序和 Apache 均未容器化。

现在我有另一个 Web 应用程序想要通过 docker 容器部署到同一台服务器,并且我正在考虑使用第二个 nginx 容器作为 uvicorn 的反向代理,用于域“b.com”。

是否可以让容器化的 nginx 将“a.com”的流量重定向到 Apache?

PS我知道当 nginx 容器关闭时两个域都无法工作,但这不是问题。

答案1

当然可以。忽略这是 Apache 和 Nginx 或 HAProxy 或您能想到的任何 HTTP 服务这一事实。它们将打开一个 TCP 端口并在该端口上等待传入的 HTTP 请求。

如果您希望客户访问 HTTP 服务,则至少在端口 80 上必须有一个 HTTP 服务来等待http://website/URL 中没有端口号的正常请求。此 HTTP 服务可以将请求转发到任何其他 HTTP 服务 - 可能在端口 81、82 上运行......或者更好的是本地主机上的 8080、8081 ......。这是您的反向代理。它可以处理基于域、基于 IP 或基于路径的请求以识别正确的后端。

我会将该主 HTTP 服务创建为“反向代理” - 它仅将请求转发到其他服务。这是否是 Apache、Nginx 或简单的 HAProxy 并不重要。将所有服务放在其他端口上并通过 localhost: 转发给它们。

有很多针对这种情况的指导文档。这很正常。

相关内容