首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >traefik + caddy >网关超时

traefik + caddy >网关超时
EN

Stack Overflow用户
提问于 2017-08-28 05:46:30
回答 2查看 2.2K关注 0票数 0

我尝试在一个简单的容器中使用带有traefik的caddy服务器。不幸的是,当我访问该域时,我得到了一个Gateway Timeout错误。我不能理解这个错误是由于traefik还是我的容器造成的。

我的docker-compose文件:

代码语言:javascript
复制
version: '2'
#
# [ server stack ]
#
services:
    web:
        image: abiosoft/caddy
        container_name: caddy
        restart: unless-stopped
        networks:
            - caddy_network
        ports:
            - 2015:2015
        volumes:
            # app
            - ./localhost:/srv
            # configs
            - ./config/Caddyfile:/etc/Caddyfile
        labels:
            - "traefik.frontend.rule=Host:domain.com"
            - "traefik.port=2015"
            - "traefik.backend=domain.com"
            - "traefik.frontend.entryPoints=http,https"
            - "traefik.enable=true"
#
# [ networks definition ]
#
networks:
    caddy_network:
            driver: bridge

我的球童文件:

代码语言:javascript
复制
0.0.0.0:2015
browse
gzip
log stdout
errors stderr

对于信息,我们可以通过traefik完美地生成加密证书。

有什么想法吗?会不会是端口配置有问题?

编辑traefik配置:

代码语言:javascript
复制
################################################################
# Global configuration
################################################################
defaultEntryPoints = ["http", "https"]
logLevel = "DEBUG"

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

[acme]
email = "admin@domain.com"
storageFile = "/etc/traefik/acme/acme.json"
entryPoint = "https"
OnHostRule = true
onDemand = true

[[acme.domains]]
  main = "domain.com"
  sans = ["docker.domain.com", "traefik.domain.com"] 

################################################################
# Web configuration backend
################################################################

[web]
address = ":8080"

# MD5
[web.auth.basic]
users = ["admin:xxx"]

################################################################
# Docker configuration backend
################################################################

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "traefik.domain.com"
watch = true
# Tous les conteneurs seront utilisables par Traefik
# Pour qu'il ne le soit pas, il est nécessaire d'ajouter le label "traefik.enable=false" 
# lors de la création du conteneur
exposedbydefault = false

提前感谢您的帮助。

jB

EN

回答 2

Stack Overflow用户

发布于 2017-08-29 12:38:13

工作解决方案:

代码语言:javascript
复制
version: '2'
#
# [ server stack ]
#
services:
    web:
        image: abiosoft/caddy
        container_name: caddy
        restart: unless-stopped
        networks:
            - traefik_network
        ports:
            - 2015:2015
        volumes:
            # app
            - ./localhost:/srv
            # configs
            - ./config/Caddyfile:/etc/Caddyfile
        labels:
            - "traefik.frontend.rule=Host:domain.com"
            - "traefik.port=2015"
            - "traefik.backend=domain.com"
            - "traefik.frontend.entryPoints=http,https"
            - "traefik.enable=true"
            - "traefik.docker.network=traefik_network"
#
# [ networks definition ]
#
networks:
    traefik_network:
        external: true
票数 0
EN

Stack Overflow用户

发布于 2019-08-16 18:38:31

没有必要在那个容器中打开端口,我的意思是这一行,它是不必要的,不推荐:端口:- 2015:2015

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

https://stackoverflow.com/questions/45909630

复制
相关文章

相似问题

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