Nginx 代理管理器:您可以使用单个 IP 地址(无主机名)和不同的端口或路径转发到不同的 docker 容器应用程序吗?

Nginx 代理管理器:您可以使用单个 IP 地址(无主机名)和不同的端口或路径转发到不同的 docker 容器应用程序吗?

我没有可以使用的主机名(例如 something.com)。我只有服务器的 IP 地址可供访问。有没有办法配置 Nginx 代理管理器,以便当您请求 http://<ip_address>:8080 或 http://<ip_address>/portainer 时,它会转发到正在监听端口 9000 的 docker 容器应用程序(例如 portainer)?

由于我在公司网络内工作,因此开放其他端口(如 9000)是国会行为。我希望代理可以解决这个问题。

我已经按照这个教程操作了...

https://www.the-digital-life.com/portainer-ubuntu-tutorial/

...但说明显示使用子域名(如 portainer.something.com)转发到 docker 容器 http://portainer:9000。

谢谢!

答案1

我不这么认为。NPM 需要至少一个 FQDN(完全限定域名)来告知其路由来自哪里/到哪里。

如果您可以做到这一点,那么您的第二个问题的答案是肯定的。在代理主机设置中,有一个“自定义位置”选项卡,您可以在其中配置子文件夹(在 URL 级别)以代理到不同的位置。

编辑代理主机时的自定义位置选项卡

如果你没有可以公开使用的 FQDN,并且这是在私有局域网中,你可以配置裂脑(或水平分割)DNS。您可以通过在 LAN 中运行 DNS 的任何服务中添加手动 DNS 条目来实现此目的。这样,您就可以让 myapp.myinternaldomain.test 指向 NPM,然后您可以为每个应用程序或子文件夹使用不同的子域。我个人推荐子域方法,它更符合 NPM 的使用方式,而且更安全。

相关内容