【问题标题】:404 error and "to many redirects" with traefik and nextcloudtraefik 和 nextcloud 的 404 错误和“到多个重定向”
【发布时间】:2018-11-20 14:08:10
【问题描述】:

我正在使用 Traefik 反向代理某些服务。但是有些事情没有按预期工作。我认为这可能是端口冲突。当使用端口示例 192.168.1.10:8080 时,我被重定向到 Traefik 仪表板。但是在访问192.168.1.10 时,我想在 Nextcloud 服务中结束,但我得到了 404 错误。

这是我的 docker-compose.yml 文件:

    version: "3.6"
    services:

    ### TRAEFIK REVERSE PROXY WITH LETTS ECRYPT FOR DOCKER MEDIA SERVER ###
      traefik:
        hostname: traefik
        image: traefik:latest
        container_name: traefik
        restart: always
        domainname: ${DOMAINNAME}
        networks:
          - default
          - traefik_proxy
        ports:
          - "80:80"
          - "443:443"
    #      - "8080:8080"
        environment:
          - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}
          - CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY}
        labels:
          - "traefik.enable=true"
          - "traefik.backend=traefik"
          - "traefik.frontend.rule=Host:traefik.${DOMAINNAME}"  
          - "traefik.port=80"
          - "traefik.docker.network=traefik_proxy"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
          - ${USERDIR}/docker/traefik:/etc/traefik
          - ${USERDIR}/docker/shared:/shared

    ### NextCloud – Your Own Cloud Storage ### with redis https://github.com/nextcloud/docker/issues/140
      nextcloud:
        container_name: nextcloud
        depends_on:
          - traefik
          - mariadb
          - redis
        restart: always
        image: linuxserver/nextcloud
        volumes:
          - ${USERDIR}/docker/nextcloud:/config
          - ${USERDIR}/shared_data:/data # Path to data you want to share/sync
          - ${USERDIR}/docker/shared:/shared
        ports:
           - "9059:443"
        environment:
          - PUID=${PUID}
          - PGID=${PGID}
        networks:
          - traefik_proxy
          - default
        labels:
          - "traefik.enable=true"
          - "traefik.backend=nextcloud"
          - "traefik.frontend.rule=Host:nextcloud.${DOMAINNAME}"
          - "traefik.port=80"
          - "traefik.protocol=https"
          - "traefik.docker.network=traefik_proxy"

这是我的 Traefik.toml 文件:

    #debug = true
    logLevel = "DEBUG" #DEBUG, INFO, WARN, ERROR, FATAL, PANIC
    InsecureSkipVerify = true
    defaultEntryPoints = ["https", "http"]

    # WEB interface of Traefik - it will show web page with overview of frontend and backend configurations
    [web]
    address = ":8080"
      [web.auth.basic]
      usersFile = "/shared/.htpasswd"

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

访问192.168.1.10时,预期的结果是点击nextcloud。

【问题讨论】:

    标签: docker-compose traefik


    【解决方案1】:

    你在 nextcloud 下的标签告诉 traefik 将匹配前端规则的流量路由到该服务的 80 端口

    - "traefik.port=80"
    

    而您的 nextcloud 服务仅公开端口 443。将标签更改为使用端口 443。

    如果你希望在访问 192.168.1.10 时点击 nextcloud,你的前端规则应该是

    - "traefik.frontend.rule=Host:${DOMAINNAME}"
    

    最后在localhost上测试的时候最好用curl测试一下,避免其他麻烦

    curl -H Host:whoami0.traefik http://localhost

    【讨论】:

    • 谢谢!我已经进行了更改,但是当点击 safari/chrome 警告时,我仍然收到Connection not secure 和 404。在 traefik 日志中traefik | 2018-11-22T17:36:38.721997945Z time="2018-11-22T17:36:38Z" level=debug msg="http: TLS handshake error from 192.168.1.108:49637: remote error: tls: unknown certificate authority" traefik | 2018-11-22T17:37:19.532029621Z time="2018-11-22T17:37:19Z" level=debug msg="Serving default cert for request: \"192.168.1.10\""
    • 我得到了我的 nextcloud 容器,但被拒绝 Access through untrusted domain
    • 没关系。所以你在浏览器和traefik之间强制使用https,但你没有提供任何ssl证书,需要添加docs.traefik.io/configuration/acme
    • 我可能已经开始工作了!问题似乎是我无法连接到 IP,但在 etc/hosts 中添加主机名似乎一切正常
    猜你喜欢
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2017-03-27
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多