![向 Docker 容器内运行的应用程序添加“虚拟路径”的最佳方法](https://linux22.com/image/745554/%E5%90%91%20Docker%20%E5%AE%B9%E5%99%A8%E5%86%85%E8%BF%90%E8%A1%8C%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%B7%BB%E5%8A%A0%E2%80%9C%E8%99%9A%E6%8B%9F%E8%B7%AF%E5%BE%84%E2%80%9D%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95.png)
现在的情况
我在 Docker 容器内运行了 2 个应用程序,一个是 Angular 应用程序,另一个是 .Net Core WebApi。每个应用程序都有一个绑定端口(WebApi 在 8090 主机端口上运行,Angular App 在 4300 主机端口上运行),这意味着我可以通过以下方式访问每个应用程序:(http://主机名:绑定端口)。
我想要实现的目标
我习惯使用 IIS 部署,每个新应用程序都有一个虚拟路径,如下所示: http://服务名称/应用程序1
但是现在,我开始使用 Docker 发布应用程序,但我找不到在容器内运行的应用程序上使用虚拟路径的方法。例如,我在 docker 容器上有一个应用程序,可以像这样访问: http://服务器名称:5000/
上面的“5000”是绑定到容器公开端口的主机端口。我想要的是使用虚拟路径访问容器内运行的每个应用程序,而不是使用绑定的端口,如下所示:
我已经搜索过可能的解决方案,例如反向代理,但我不确定这是否是唯一的解决方案或最佳的解决方案。
PS:具有docker应用程序的服务器是CentOS 7。