首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >404错误和traefik和nextcloud的“许多重定向”

404错误和traefik和nextcloud的“许多重定向”
EN

Stack Overflow用户
提问于 2018-11-20 22:08:11
回答 1查看 1.7K关注 0票数 2

我正在使用Traefik进行反向代理一些服务。但是有些东西并没有像预期的那样工作。我认为这可能是一个港口冲突。当使用端口示例192.168.1.10:8080时,我被重定向到Traefik仪表板。但是当我访问192.168.1.10时,我想结束在Nextcloud服务,但我得到了404错误。

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

代码语言:javascript
复制
    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文件:

代码语言:javascript
复制
    #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时,预期的结果是命中下一个云。

EN

回答 1

Stack Overflow用户

发布于 2018-11-20 22:39:08

nextcloud下的标签告诉traefik将符合前端规则的流量路由到此服务上的端口80

代码语言:javascript
复制
- "traefik.port=80"

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

如果您希望在访问192.168.1.10时访问下一个云,那么您的前端规则应该是

代码语言:javascript
复制
- "traefik.frontend.rule=Host:${DOMAINNAME}"

最后,在本地主机上测试时,最好使用curl进行测试,以避免其他麻烦

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

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

https://stackoverflow.com/questions/53394845

复制
相关文章

相似问题

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