首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker反向代理到子域

Docker反向代理到子域
EN

Stack Overflow用户
提问于 2017-06-12 01:09:46
回答 1查看 2.3K关注 0票数 2

我试图使用jwilder/nginx-代理码头映像作为另外两个容器的反向代理,其中一个运行tomcat,另一个运行grav。我希望他们代理到不同的子域,这不应该引起冲突。

我想要的是:

  • Grav可通过端口80在www.domain.com上使用。
  • Tomcat可在appserver.domain.com上通过端口8080获得
  • 在端口80上运行另一个应用程序的能力指向另一个子域。

目前,两个容器都使用端口8080,如命令docker ps -a所示。

下面是我当前的对接者-Compose.yml:

代码语言:javascript
复制
nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
        - "80:80"
    volumes:
        - /var/run/docker.sock:/tmp/docker.sock:ro

tomcat:
    image: tomcat:8.5.15-jre8
    container_name: tomcat
    environment:
        - VIRTUAL_HOST=appserver.domain.com
        - VIRTUAL_PORT=8080
#    ports:
#        - "8080:8080"

grav:
    image: garywiz/docker-grav
    container_name: grav
    environment:
        - VIRTUAL_HOST=www.domain.com
        - VIRTUAL_PORT=80
 #   ports:
 #       - "80:8080"
    #expose:
    #    - 8080
    #    - 80

other:
    image: other
    container-name: other
    environment:
    - VIRTUAL_HOST=other.domain.com
    - VIRTUAL_PORT=80

有人能帮忙吗?

更新:

我将我的docker-compose.yml更改为:

代码语言:javascript
复制
version: "2"
services:
    nginx-proxy:
        image: jwilder/nginx-proxy
        container_name: nginx-proxy
        ports:
            - "80:80"
            - "8080:8080"
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock:ro

    tomcat:
        image: tomcat:8.5.15-jre8
        container_name: tomcat
        environment:
            - VIRTUAL_HOST=appserver.domain.com
            - VIRTUAL_PORT=8080

    grav:
        image: garywiz/docker-grav
        container_name: grav
        environment:
            - VIRTUAL_HOST=www.domain.com,domain.com
            - VIRTUAL_PORT=8080

这两个容器现在似乎都是通过端口80提供的,而不是在“传统”端口8080上可用的tomcat。这是基于我的配置文件的预期行为吗?

杰森

EN

回答 1

Stack Overflow用户

发布于 2018-02-14 22:22:03

不确定这是否对您有帮助,因为这是一个非常简单的POC,只用于几个模拟两个不同项目的index.html。虽然,也许通过一些努力,你可以让它对你的情况起作用。诀窍是让另一个容器作为反向代理运行nginx,它可以访问其他容器。这里有代码https://github.com/jlaso/docker-nginx-reverseproxy-domain-name,可能特性/生产部署分支在非本地环境中更有用。

我写了一篇文章,很深地解释了这一点,但它是用西班牙语http://developer.joseluislaso.es/2018/02/resolver-por-nombre-de-dominio-en-docker.html写的。我是从https://www.thepolyglotdeveloper.com/2017/03/nginx-reverse-proxy-containerized-docker-applications/那里得到这个想法的

希望能帮助你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44490125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档