0

我的问题类似于这个问题,今天显然没有解决:/我正在按照本教程设置我的 Theia IDE,IDE 正在工作,但我希望我的 8080 端口打开以测试 node.js 后端我使用终端在 Theia IDE 上托管。这是我用于设置开放端口等的 docker-compose 文件:

version: '2.2'

services:
  eclipse-theia:
    restart: always
    image: theiaide/theia:latest
    init: true
    environment:
      - VIRTUAL_HOST=mydomainhere.com
      - LETSENCRYPT_HOST=mydomainhere.com

version: '2'

services:
  nginx-proxy:
    restart: always
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    volumes:
      - "/etc/nginx/htpasswd:/etc/nginx/htpasswd"
      - "/etc/nginx/vhost.d"
      - "/usr/share/nginx/html"
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "/etc/nginx/certs"

  letsencrypt-nginx-proxy-companion:
    restart: always
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    volumes_from:
      - "nginx-proxy"

如果我添加expose: - "8080"到 eclipse-theia docker-compose 文件中,我会返回 502 错误......所以我猜这不是要走的路。我还尝试运行 netcat 来检查端口 8080 是否已打开。

更新 当我收到 502 错误时,我在日志中收到以下错误: [error] 136#136: *21 no live upstreams while connecting to upstream 如果我ports: - "8080"改为添加,则会收到 HSTS 错误。

更新 2

我按照以下答案的建议尝试了以下配置:

version: '2.2'

services:
  eclipse-theia:
    restart: always
    image: theiaide/theia:latest
    init: true
    environment:
      - VIRTUAL_HOST=mysubdomain1.domain.com,mysubdomain2.domain.com
      - VIRTUAL_PORT=80,8080
      - LETSENCRYPT_HOST=mysubdomain1.domain.com,mysubdomain2.domain.com
      - LETSENCRYPT_EMAIL=mymail@domain.com

但这似乎也不起作用,端口 8080 似乎根本不起作用。我还尝试8080在 nginx-proxy 配置上指定端口,但它不起作用:/

4

2 回答 2

1

您是否将代理上的端口 8080 用于其他用途?我只是在代理上使用 80 和 443 ......

如果您只在 eclipse-theia 上使用 8080,为什么不定义

ports: 
  - "8080:8080"

在 theia 的 docker compose 上而不是 nginx-proxy 上?

代理具有意义,在端口 80 和 443 上使用多个域/子域,而不是使用奇怪的端口混乱。

我无法像您描述的那样解释如何使用它,因为我无法以这种方式使用它,因此我不会进一步深入研究。

于 2020-05-19T08:20:15.420 回答
0

所以我要做的就是将配置设置为:

version: '2.2'

services:
  eclipse-theia:
    restart: always
    image: theiaide/theia:latest
    init: true
    environment:
      - VIRTUAL_HOST=mysubdomain1.domain.com,mysubdomain2.domain.com
      - LETSENCRYPT_HOST=mysubdomain1.domain.com,mysubdomain2.domain.com
      - LETSENCRYPT_EMAIL=mymail@domain.com

并且在 jwilder/nginx-proxy 容器中安装了 apt,所以只需执行apt install nano然后执行nano /etc/nginx/conf.d/default.conf并编辑从 3000 到 8080 的第二个上游端口,瞧,它可以工作了!

PS 不要将端口 8080 添加到 nginx-proxy 配置中,这完全没有必要!

于 2020-05-22T15:56:15.403 回答