问题标签 [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 投票
2 回答
5550 浏览

docker - 码头工人:gitlab + traefik & 端口 22

我需要在 Traefik 后面设置 Gitlb。

除了通过命令行对应用程序进行身份验证外,一切正常 - 我不知道如何通过 traefik 公开端口 22。

知道如何设置吗?如何暴露 docker 容器的 22 端口(通过 traefik)?

我将默认端口从 22 更改为 10022。

我正在通过netstat -tulpn

我不明白为什么 10022 连接到 docker-proxy。

当我尝试:

非常感谢

0 投票
3 回答
3877 浏览

docker - Traefik http 使用 docker 标签重定向到 https

我在群模式下使用 traefik 作为 docker 服务。Traefik 接受一些标签来配置它将如何处理 docker 容器并为其创建代理。

我可以traefik.frontend.entryPoints=https在 docker 服务中定义一个标签来覆盖 Traefik defaultEntryPoints,但用户需要使用https. 我想公开入口点,http并且https,但是如果用户使用 发出请求http,Traefik 会将其重定向到https.

是否可以entryPoints.http.redirect用作 docker 标签来强制重定向某些特定服务?我不想将它设置在traefik.toml文件中,因为它将应用于所有服务,我希望它只是一些服务,而不是所有服务。

问候

0 投票
1 回答
459 浏览

traefik - 将流量直接传递到容器以回答 Traefik 中的 LetsEncrypt 挑战

我有一个基于https://github.com/silvio/docker-matrix的容器(“矩阵”) (尽管这可能并不重要)。

它在端口 8448 和 3478(不是 80 或 443)上运行服务。

不运行 traefik,只运行 'matrix' 容器,在 'matrix' 容器内,我可以运行 LetsEncrypt 的 certbot,它的请求告诉 LetsEncrypt 尝试在端口 443 上与我联系并提供 ssl 证书,如下所示:

certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site

提出挑战,接受挑战,证书保存在容器的 dir /etc/letsencrypt 中。

好的,现在我想在运行 Traefik 时执行此操作。

我在我的 docker-compose 文件中为这个容器传递了我的 Traefik 参数,如下所示:

当我在容器中运行挑战时(与上面相同的命令)

certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site

我在我的 Traefik 日志中得到以下信息

time="2017-07-14T01:04:35Z" level=error msg="获取证书时出错:找不到域 b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid 的质询证书,重试时间为 453.949201ms" :04:35Z" level=error msg="获取证书时出错:找不到域 b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid 的质询证书,重试 808.788592ms" time="2017-07-14T01:" msg="获取证书时出错:找不到域 b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid 的质询证书,在 1.138006833s 中重试" time="2017-07-14T01:04:37Z 无法获取证书" level=error查找域 b374a9118f855cacdb0096846a3dfa0c 的挑战证书。f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 2.436785791s" time="2017-07-14T01:04:40Z" level=error msg="Error getting cert: Cannot find challenge cert for domain b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 3.055167113s" time="2017-07-14T01:04:43Z" level=error msg="获取证书时出错:找不到域 b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, 重试证书的质询证书。 07-14T01:04:48Z" level=error msg="获取证书时出错:找不到域 b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid 的质询证书,正在重试 7.5448786511s" time="201:50-147"T level=error msg="获取证书时出错:Cannot find challenge cert for domain b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid, retrying in 6.313970727s" time="2017-07-14T01:05:01Z" level=error msg="Error getting cert: Cannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73. 1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01:05:01 server.go: 2753:http:来自 66.133.109.36:55264 的 TLS 握手错误:EOFCannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01 :05:01 server.go:2753: http: 来自 66.133.109.36:55264 的 TLS 握手错误:EOFCannot find challenge cert for domain 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" time="2017-07-14T01:05:01Z" level=debug msg="ACME got nothing 8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01 :05:01 server.go:2753: http: 来自 66.133.109.36:55264 的 TLS 握手错误:EOF

请注意,这些是真实的日志。没有提及我要验证的实际域名。

我究竟做错了什么?

0 投票
1 回答
1047 浏览

session - Traefik 粘性会话在 docker swarm 中不起作用

我在 Traefik 反向代理中有一个问题:它使用自己的 cookie 来存储后端服务器 ip 地址,但有时这不能正常工作,因为 cookie 的路径不是'/',但它使用网页默认值,例如'/myapp/page'

我的问题是该应用程序还使用其他路径,例如'/myapp/api',但它被路由到另一个实例。

由于它是一个遗留应用程序,我无法将会话数据存储在其他外部会话存储中。我使用 docker swarm 来管理 docker 容器。

如何在 Traefik 中设置 cookie 的路径?

0 投票
0 回答
194 浏览

consul - traefik - 通过键/值存储对前端进行基本身份验证

如何通过键/值存储为前端设置基本身份验证,例如 docker 提供程序的标签“traefik.frontend.auth.basic”。

我检查了这个文件中的代码,现在可能不支持它。

我认为它很有用,我正在尝试在我的 fork 中实现,有什么建议吗?

0 投票
1 回答
6905 浏览

marathon - 使用与后端端口不同的前端端口

我在服务前面有一个 traefik 实例。该服务在端口 9000 上运行。但是我希望端口 :8000 将请求代理到该服务。两人都跑马拉松。

我尝试使用traefik.port标签,但是当我从 :8000/dashboard 的后端块判断时,它似乎假设后端也在 8000 上运行。

我还尝试了其他解决方案,例如

traefik.frontend.rule=Host:traefikhost:8000没有成功

在这种情况下,文档真的不清楚

0 投票
2 回答
9372 浏览

docker - Traefik 与 Docker 网络

我真的不明白如何将 traefik 与 docker 网络一起使用。

我尝试运行“wekan”看板。如果我将端口绑定到主机,它可以完美运行,所以它实际上是通过 traefik 处理它。这是我的码头配置:

我似乎找不到访问该死的东西的方法...您的回答将不胜感激,它不仅可以让我运行 Wekan,而且还可以更新我使用链接的旧服务:链接而不是 Docker网络 - 现在不推荐使用链接。

0 投票
2 回答
2804 浏览

amazon-web-services - 在使用 kops 创建的 AWS 集群上通过入口使 k8s 服务可用

在使用 kubeadm 在一些 KVM 上尝试 kubernetes 之后,我想在 AWS 上使用kops设置一个适当的自动可扩展集群,并用它为一些网站提供服务。

令人惊叹的魔力kops create cluster ...为我提供了一堆 ec2 实例,使 k8s API 可用,test-cluster.example.com甚至配置我的本地~/.kube/config,以便我可以kubectl apply -f any-stuff.yaml立即使用。这太棒了!

我现在可以将我的部署发送到集群并配置入口规则——所有这些东西都在仪表板中可见。但是,目前还不清楚如何将集群中的节点与我拥有的域名相关联。

在我的小型 KVM k8s 中,我只需安装traefik并将其暴露在端口:80:443. 然后我转到我的 DNS 设置并添加一些 A 记录,这些记录指向我的集群节点的公共 IP。在 AWS 中,有一组动态的虚拟机,当集群负载不重时,其中一些可能会停机。所以感觉我需要使用外部负载均衡器,因为我的traefik helm 图表服务公开了两个随机端口而不是固定的:80 和:443,但我不确定。

有什么选择?他们的成本是多少?如果域不受 AWS 控制,应该如何处理 DNS 记录?

0 投票
0 回答
658 浏览

docker - How to use whitelisting per container

I'm using traefik in docker-mode. It's retrieving most config (acme.domains, enabled, frontend-rules,...) from the docker containers.

Currently all containers are reachable from the WWW (0.0.0.0). I'm wondering how to restrict the access to a single container to some dedicated ip-addresses.

The docker labels of the private web-service would look like:

The whitelisted ip is in this case of course just an example. This could be any private ip-subnet.

Maybe it's possible to set a frontend-rule which bases on "client.ip"?

Thanks for your help!

0 投票
1 回答
927 浏览

regex - 主机正则表达式失败

我正在尝试将 Traefik HostRegexp 用于前端规则。我正在尝试这样的事情:

但这不像我想要的那样工作。

当使用这些 URL 时,我希望 traefik 路由到我的 apache 服务器: A.B.C.pXX.env1.mydomain.com A.B.C.pXX.env2.mydomain.com 有什么线索吗?我的正则表达式做错了什么?