微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx – 具有相同域的端口80上的多个Docker容器

我的问题类似于this问题,但只有一个域.

是否可以在同一台服务器上运行多个docker容器,所有这些容器都在端口80上,但具有不同的URL路径?

例如:

在内部,所有应用程序都托管在同一个docker服务器上.

172.17.0.1:8080 => app1
172.17.0.2:8080 => app2
172.17.0.3:8080 => app3

在外部,用户将使用以下URL访问应用程序:

www.mydomain.com                 (app1)
www.mydomain.com/app/app2        (app2)
www.mydomain.com/app/app3        (app3)

解决方法:

我用Nginx反向代理解决了这个问题.

这是Nginx容器的Dockerfile:

FROM Nginx
copY Nginx.conf /etc/Nginx/Nginx.conf

这是Nginx.conf:

http {

        server {
              listen 80;

              location / {
                proxy_pass http://app1:5001/;
              }

              location /api/ {
                proxy_pass http://app2:5000/api/;
              }
        }
}

然后我在同一个docker网络中站起来了Nginx,app1和app2容器.

确保在位置和代理路径中包含尾随/,否则Nginx将返回’502:Bad Gateway’.

所有请求都通过端口80上的docker主机,然后将它们移交给Nginx容器,然后Nginx容器根据url路径将它们转发到app容器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐