Traefik + Nextcloud 导致网关错误

Posted

技术标签:

【中文标题】Traefik + Nextcloud 导致网关错误【英文标题】:Traefik + Nextcloud results in bad gateway 【发布时间】:2018-10-26 00:51:00 【问题描述】:

我已经启动并运行了 3 个服务。 mariadb 和 nextcloud 实例:

version: '2.1'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=my_root_password
      - MYSQL_PASSWORD=my_password
      - MYSQL_DATABASE=my_database
      - MYSQL_USER=my_user
  app:
    image: nextcloud
    restart: always
    networks:
      - web
      - default
    ports:
      - 9000
    labels:
      - "traefik.backend=app"
      - "traefik.docker.network=web"
      - "traefik.frontend.rule=Host:my_host"
      - "traefik.enable=true"
      - "traefik.port=9000"
      - "traefik.default.protocol=http"

networks:
  web:
    external: true

还有一个 traefik 服务:

version: '2'

services:
  traefik:
    image: traefik:1.5.4
    restart: always
    ports:
      - 80:80
      - 443:443
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/traefik/traefik.toml:/traefik.toml
      - /opt/traefik/acme.json:/acme.json
    container_name: traefik

networks:
  web:
    external: true

这个 traefik 实例正在使用这个配置文件:

debug = false

logLevel = "ERROR"
defaultEntryPoints = ["https","http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
  [entryPoints.https.tls]

[retry]

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "my_host"
watch = true
exposedByDefault = false

[acme]
email = "my_email"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"

现在,当我转到我的主机时,它会重定向到 HTTPS,但随后它只显示 bad gateway 而没有其他内容。它应该显示 nextcloud Web 应用程序。有谁知道为什么会这样?我正在使用docker-compose up -d 命令运行撰写文件。

【问题讨论】:

你有想过这个吗? 【参考方案1】:

现在可能为时已晚,但我自己也遇到了这个问题,所以发布一个答案来解决我的问题。 Nextcloud 在 Traefik 尝试连接的容器 IP 地址上公开端口 80。所以你错误地为“traefik.port”标签指定了端口。将其从 9000 更改为 80。

【讨论】:

以上是关于Traefik + Nextcloud 导致网关错误的主要内容,如果未能解决你的问题,请参考以下文章

Traefik 坏网关

traefik代理背后的Gitlab“网关超时”

Nginx 代理管理器坏网关(Docker Wordpress 和 Nextcloud)

将Traefik StripPrefix中间件添加到docker-compose标签结果为504

Traefik 2.0闸道超时

Traefik 2 docker没有显示客户端真实IP