gpt4 book ai didi

nginx - 在单个服务器中管理和使用多个 Docker 容器(微服务)

转载 作者:行者123 更新时间:2023-12-02 19:43:06 25 4
gpt4 key购买 nike

我有一个 GCE(谷歌计算引擎)服务器,运行在端口 80 的 Nginx/Apache 网络服务器列表,它将为网站提供服务。同时,我有多个微服务与 Docker 容器在同一台服务器上运行。每个容器都将在其适当的本地 IP 地址处为网站提供服务,并且我已将其绑定(bind)到 localhost:PORT。我不想将端口绑定(bind)到公共(public) IP 地址,因为它会将微服务公开暴露给外界。

现在的问题是,我必须将容器提供的网站页面嵌入到在 Web 服务器的端口 80 上运行的网站中。由于嵌入代码是由浏览器执行的,因此我不能在 python/HTML 代码中使用本地 IP (172.17.0.x) 或 localhost:PORT。

现在如何将容器内本地运行的微服务页面嵌入到为用户服务的网站中?

例如:

我的服务器公网IP: 104.145.178.114
该网站的服务来自: 104.145.178.114:80
在同一台服务器中,我们有多个微服务在本地 IP 中运行,例如 172.17.0.1 172.17.0.2 等等。每个容器都将在其内部运行一个服务器,该服务器将在 处提供页面服务。 172.17.0.1:8080/test.html 对于其他容器也是如此。现在我需要将此页面 test.html 嵌入到另一个网页,该网页由 Nginx/Apache 网络服务器在 提供服务。 104.145.178.114 不向公众公开内部/本地 IP 端口。

我想听听有关此问题的建议和替代解决方案

最佳答案

我假设 Nginx 可以访问所有内部 docker ips(微服务)。除非我遗漏了什么,否则 proxy_pass ( http://nginx.org/en/docs/http/ngx_http_proxy_module.html ) 应该适合你。您可以假设某个(外部可用的)url 模式来代理您的微服务容器,而不会将微服务端口暴露给世界。

关于nginx - 在单个服务器中管理和使用多个 Docker 容器(微服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com