问题标签 [traefik]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1736 浏览

traefik - 通过 traefik 访问 3000 端口上的容器

好的,所以我有一个我想通过 traefik 访问的 node-js 应用程序。

node-js 应用程序在端口上运行3000

test-it在按照入门页面的说明进行操作后,我已经运行了 traefik 。

码头工人-compose.yml

尝试连接:

curl -H Host:microservice.docker.localhost http://localhost/

错误的网关

curl -H Host:microservice.docker.localhost http://localhost:3000/

curl:(52)来自服务器的空回复

curl -H Host:whoami.docker.localhost http://localhost/按预期工作。

0 投票
1 回答
2486 浏览

ssl - 创建 TLS 配置时出错 (v1.3.7)

我一直在摆弄 Traefik 几个小时,发现它非常有趣。但是,我遇到了一个我自己似乎无法解决的问题。

这是一个非常简单的设置,只是尝试测试 HTTP 到 HTTPS 的重定向和我的 SSL 证书。

我有以下docker-compose.yml

traefik.toml的是

但是,当我尝试运行它时:

这似乎表明我的证书有问题。我确信证书很好,它是我们在 Apache 和 NGINX 上成功使用的通配符证书。

我已经检查了这个可能的答案,但是证书和私钥都匹配这些参数。

任何人都可以解释一下吗?

谢谢!

0 投票
1 回答
660 浏览

amazon-s3 - traefik 是否可以将 index.html 附加到空('/')路径?

我们如何有条件地将“index.html”附加到以斜杠结尾的 url 请求中?

作为背景:我们将多个域名的多个静态单页应用程序部署到启用了 Web 托管的单个 S3 存储桶中。此存储桶可用于: https ://our-bucket-name.s3.amazonaws.com

存储桶使用对象键前缀进行组织,以便: https ://our-bucket-name.s3.amazonaws.com/environment/app_name/build_id/index.html https://our-bucket-name.s3.amazonaws。 com/environment/app_name/build_id/app.css https://our-bucket-name.s3.amazonaws.com/environment/app_name/build_id/app.js

如果有以下请求: https ://www.example.com/ 这应该路由到: https ://our-bucket-name.s3.amazonaws.com/environment/app-name/build_id/index.html

如果有请求: https ://www.example.com/app.css 这应该路由到: https ://our-bucket-name.s3.amazonaws.com/environment/app-name/build_id/应用程序.css

不确定它是否相关,但这里的 traefik 是针对我们希望由 AWS S3 支持的 kubernetes 入口。

0 投票
1 回答
1328 浏览

traefik - 在 Docker Swarm 模式下在 Traefik 后面运行的内部和外部服务

我很难找到使我的情况可行的任何方法。我有 2 个应用程序:

1:在 sub1.domain.com 上运行的外部服务 Web 应用程序。如果我使用 acme (LetsEncrypt) 在 traefik 后面运行这个应用程序,它可以正常工作。我还有一些后端服务(api/auth),它们都使用有效的 LetsEncrypt 证书运行,并通过 traefik 将它们的 http 流量重定向到 https

我必须为此服务提供某种形式的 http 到 https 转发。

2:在 sub2.domain.com 上运行的内部服务 Web 应用程序。我有一个自签名的可信证书(内部 CA),如果我将它设置为默认证书,或者我在应用程序本身(在 tomcat 内部)中使用它,它在 traefik 后面工作得很好。但是,由于它是一项内部服务,如果它解决了我的问题,我可以在没有 ssl 的情况下生活。但是,这不适用于 traefik 的 http 到 https 转发。

我一直试图让这两个服务在同一个 traefik 实例后面运行,但我能想到的所有可能的场景都不起作用,因为它们要么仍在进行中,要么根本不起作用。

场景

1:没有http到https的重定向,内部服务不用https,直接使用http即可。然后在后端内部将外部 Web 服务重定向到 https。

问题

  • 无法拥有 2 个 traefik 转发的 traefik 端口 无法将 1 个单个端口转发到另一个 proto(因为后端始终是 http 或 https 端口)
  • 在默认证书上使用 ACME

2:在默认证书上使用 ACME

其他人认为这是个好主意。它只是还没有工作。

3:重用后端ssl证书。让 traefik 无需“ssl 终止”即可重定向。我不确定这是否是同一件事,但有一个名为“passTLSCert”的选项。然而,这似乎只有在 .toml 文件中定义的前端不起作用(可能是因为我使用 docker 作为后端)。

4:使用 DNS-01 质询为我的内部服务创建 SSL 证书。听起来这可行,所以我现在正在使用 CloudFlare 并拥有一个 api 密钥。但是,它似乎不适用于子域。我的问题报告没有回复:https ://github.com/containous/traefik/issues/1953

编辑:我可能能够解决 4 中描述的问题以使其正常工作。内部 DNS 似乎与 traefik 冲突

0 投票
1 回答
195 浏览

traefik - 在集群模式下启动 Traefik 时崩溃

我最近想从单节点 Traefik 安装(使用配置文件)更改为 3 节点 Traefik 集群。

按照文档,我上传了配置:

它没有显示错误,并且检查 Consul KV,钥匙在那里。

但是在集群模式下启动 Traefik 时,我遇到了分段错误:

我尝试过最新的稳定版 1.3.7 和 1.4.0-rc1 版本,都显示相同的错误。

有任何想法吗?

0 投票
1 回答
2339 浏览

docker - 如何在 Traefik 中查看失败的代理?

我正在构建一个基于微服务的 PHP Web 应用程序,目前,进入我的应用程序的路由位于不同的端口上。这对开发来说很好,但是一旦我启动它就不会那么可靠了。我有:

  • 端口 10001 上的 SPA 前端
  • 端口 10000 上的 HTTP API
  • 10002 上的 Web 套接字

我希望这些都在同一个端口上。我最近发现Traefik看起来非常灵活,可以满足我未来的需求。我很欣赏我可以使用 NginX 进行简单的代理,但我非常喜欢能够告诉代理通过 API 重定向流量的想法(将来会有用)。

但是,我已经设置了 Traefik 配置,但它似乎并没有像我想要的那样进行代理。我正在努力让它生成日志来说明它出了什么问题,我正在寻找一个“速赢”来鼓励我继续坚持下去。

我已经为它配置了一个主机到容器的卷,因此它可以使用-v /var/run/docker.sock:/var/run/docker.sock) 来探索 Docker。我真的不明白为什么它需要了解我的容器,因为我打算在我的traefik.toml.

所以,正如我(模糊地)理解的那样,我需要设置入口点(流量进来的地方)、前端(决定如何路由它)和后端(做事的服务器)。我最初的尝试如下所示:

目前我每个服务只有一个容器。我在模式匹配器上区分 HTTP API,我想我也会在某些东西上匹配套接字服务器(也许是Upgrade标头)。

所以,当我访问时,http://localhost:10005/我得到404 page not found. 好吧,很公平,我可能配置错误。所以我将日志级别重置为INFO,我得到了这个:

但是,当触发 404 时,没有额外的日志输出stdout,所以我无法判断问题是什么。我认为这不是我的服务之一。

我猜也许我的后端应该指示处理该服务的容器的名称,这样我就可以删除“跳过”错误?我还应该注意,我没有使用 Kubernetes 或类似的东西——它现在只是普通的 Docker Compose。

我没有发现什么会推动我前进?

更新

如果我不让 Traefik 访问我的 Docker 配置,它似乎很不高兴。如果我打开-v音量开关,docker run我会每隔一秒左右将其添加到日志中:

我还找到了如何[accessLogs]在配置中打开,并将其写入stdout. 这些显示我的请求正在访问代理,但它们没有提供有关它们如何被路由的任何信息,也没有提供我的前端和后端定义是否被识别为有效的任何信息。

0 投票
1 回答
667 浏览

docker - Traefik 重写 http 状态?

我在 kubernetes 中使用 traefik (1.3.5) 时遇到了一种非常奇怪的行为(用作入口(使用稳定图表部署))。

我在清漆服务器后面有一个 php 端点,当我直接卷曲它时返回 404,没有任何特殊技巧。

这是预期的行为,但是当我使用 gzip 标头(或使用 --compressed)通过 traefik 卷曲它时,我有一个 http 200... :up_side_down:

如果我直接在清漆上或通过亚马逊 elb 进行相同的测试,我没有问题并且总是得到 404 ...

我注意到 traefik 正在重新添加Vary: Accept-Encoding标题。

我还注意到几十条server.go:2753: http: multiple response.WriteHeader calls日志消息。

你们有没有人已经有这种奇怪的行为?任何线索如何调查?

提前致谢

0 投票
3 回答
10827 浏览

https - traefik - HTTP 到 HTTPS WWW 重定向

我找不到与此类似的问题,还有其他人提到 https 重定向,但没有提到最小化重定向。

一直在寻找解决方案,但还无法解决。

我们将 Docker > Traefik 用于 WordPress,并将 www 作为 WordPress 的首选版本。有多个 WP 实例。域是动态添加的。

但是,使用此配置,我收到了两个重定向,从 http 到 https 到 https www

有没有办法最小化重定向?

理想的 301 重定向来自

Traefik 配置文件如下

0 投票
0 回答
1105 浏览

reverse-proxy - traefik - 根上下文 host.com/mailcatcher 的路由路径 -> 容器/

我正在尝试在 docker swarm 中托管 mailcatcher 并使用 Traefik 提供服务。我正在将 mailcatcher 作为一项服务运行,但不幸的是,它在 / 根上下文路径(如 localhost:10980/)上托管了自己。我有一个带有 PathPrefixStrip 的前端规则 /mailcatcher,因此初始加载有效,但随后应用程序尝试访问显然不存在的 host.com/assets。traefik 是否有任何解决方案,例如 nginx 中的 sub_filter 选项来路由这些请求,还是我必须将这些添加为前端规则才能托管它?

提前致谢

0 投票
1 回答
678 浏览

kubernetes - 在 GKE 上使用 stable/traefik 图表创建具有静态 IP 的负载均衡器时出错

使用 GKE 和 helm stable/traefik。

当使用静态 IP 发布到我的集群时,loadBalancerIP我收到以下错误:

三件事似乎很重要:

  1. 无论我运行多少次(即使在我手动删除了 GCE 中的所有 LB 之后。它总是在寻找 LB af5bfb5bd94a211e7adce42010a8e00e。这个密钥来自哪里?
  2. 运行gcloud compute addresses list显示<my-ip>RESERVED因此它应该可用。
  3. 当我用空白更新 helm release 值时loadBalancerIPaf5bfb5bd94a211e7adce42010a8e00eLB 已成功创建。当我改回静态 IP 时(在目标 LB 存在之后),它再次失败并出现相同的错误。

我被困住了。接下来你会检查/尝试什么?