问题标签 [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 回答
1530 浏览

networking - 简单的Træfɪk反向代理安装

我正在尝试带有一些 docker 容器的漂亮Træfɪk反向代理。

这是我的 Træfɪk docker -compose.yml

这是我的服务的docker-compose.yml Web 部件:

启动所有这些东西后,我看到在 Træfɪk Web UI 上创建了我的前端/后端,但我无法通过 my-domain.net 访问我的应用程序。

Træfɪk日志:

转发到http://172.18.0.4:80时出错,err: dial tcp 172.18.0.4:80: i/o timeout

我可以从它的本地 IP 访问应用程序(172.18.0.4),它工作正常。

我肯定在这里忘记了一些东西,有什么帮助吗?


附加信息:

  • 官方emilevauge/whoami在单独的 docker-compose 文件中工作正常。
  • 我的服务在没有 Træfɪk 的情况下运行良好(通过映射端口 80)
0 投票
2 回答
13326 浏览

docker - 使用 Traefik 路由路径

目前我正在尝试使用 Traefik 为一些 docker 容器设置负载均衡器/反向代理。我在配置 Treafik 以使用某些前缀路径使我的应用程序可用时遇到问题。基于这个示例,我能够使用 Docker 和 Docker compose 运行基本的 Traefik 配置。问题是我能够在路径上访问“whoamI”容器,但不能访问我的应用程序和其他容器。

例如,我创建了一个 docker-compose 文件(见下文)来启动 whoami 容器,以及五个 Portainer 容器(以便人们可以重新创建场景)。我希望 woamI/wai和 Portainer 可以在/portainer1.

相反,我可以访问 whoami 网络服务器(通过/wai)而不是 Portainer(通过/portainer1)。但是,我可以在/portainer2. 这两者之间的 Traefik 配置的唯一区别是使用“PathStrip”而不是“Path”。然而,令人讨厌的是,我只能在导航到时获得一个白页/portainer2;只有页面标题和一些 html 被加载。我还启动了一个暴露给主机的 Portainer 容器,以验证预期的行为(一个正常的 Portainer 页面)。另请参阅下面的附图。

编辑:

有趣的是,我也能够在/portainer4/(但不是/portainer4)到达 Portainer,从而得到相同的白页。/portainer2/导航到和之间的区别在于/portainer4/我注意到 Traefik 中有一些额外的日志记录(见下文)。通过 导航到 Portainer 时/portainer4/,日志中会显示三行额外的行,指示 400 状态。经过一番调查,我发现这是因为我的浏览器试图加载其他文件(即一个 javascript 文件、一个网站图标和一个样式表)。因此,当在我的浏览器上访问 Portainer 时,/portainer4/它知道它需要获取那些额外的文件并尝试这样做(导航到 时不会发生这种情况/portainer2)。当尝试自己访问文件时,例如,导航到/portainer4/ico/favicon.ico,我得到一个400 Bad Request. 最后,当导航到/portainer2/ico/favicon.ico是看到一个404 page not found

基于这些结果,我想知道:

  • 为什么我无法在 /portainer1 上访问 Portainer,而是在 /portainer2 上?
  • 为什么导航到 /portainer2 时看不到完整的 Portainer 页面?
  • 为什么在访问文件(例如网站图标)/portainer2//portainer4/
  • 400 Bad Request 的实际含义以及是否/如何解决此问题

我真的很感激一些正确方向的指示

一些截图: 不同的 Treafik 路径

码头工人-compose.yml:

/wai分别在访问、/portainer1/<myIP>/portainer2//portainer3/后生成的额外 Traefik 日志记录/portainer4/

0 投票
1 回答
2887 浏览

docker-compose - 如何配置带有 docker-compose 的 traefik 为服务路由多个端口

我想通过 docker-compose 配置 traefik 以公开组件服务的多个端口。

例如,在为ember-cli应用程序提供服务时,如何同时公开主端口和实时重载端口以进行开发?

0 投票
2 回答
5777 浏览

docker - traefik 代理后面的 docker 中的 gitlab 失败(通常)

我有几个使用 LetsEncrypt 凭据在 docker 中运行并通过 traefik 路由的网站。我想使用 LetsEncrypt 和 traefik 在 docker 中运行本地 gitlab-ce。

所以我将它添加到我的 traefik.toml 文件中:

这对 config/gitlab.rb:

我开始 gitlab:

转到https://gitlab.mydomain.com/我得到了一个带有 LetsEncrypt 生成证书的安全站点,但该站点没有加载:

内部服务器错误

当我重新加载页面时,我在docker logs gitlab -f

在日志中搜索/error/i时,我看到一些可能是问题的东西(zruby/gems/2.3.0/gems/redis-3.2.2z 中报告了很多错误),但没有“确凿证据”AFAICT。

最疯狂的是,我运行该网站的大约每十次(随机)次docker restart gitlab就会完美地出现。我一直很想把它搁置一旁,但其中隐藏着疯狂......

我怎样才能让它可靠地出现?或者我怎样才能更完整地调试它?

0 投票
0 回答
745 浏览

docker - traefik-Proxy 后面的 Dockerized Jira 引发 Mixed-Content-Error

我在Traefik-Installation下设置了一个Dockerized Jira-Instance

这是我的 docker-compose.yml:

我的 Jira-Baseurl 设置为https://jira.domain.com,我还可以使用https. 在我的 traefik 设置中,我为每个请求设置了从 http 到 https 的重定向。

我的 traefik.toml 看起来像这样:

这是有效的,但是根据某些请求,我收到以下错误:

混合内容:“ https://jira.domain.com/secure/Dashboard.jspa ”页面通过 HTTPS 加载,但请求了不安全的资源“ http://jira.domain.com/plugins/servlet/gadgets/ ifr?container=atlassian&mi …ivitystream-gadget%2Fgadgets%2Factivitystream-gadget.xml&libs=auth-refresh'。此请求已被阻止;内容必须通过 HTTPS 提供。

我已经读到我必须设置我的代理,但我并不知道如何做到这一点。

0 投票
2 回答
2853 浏览

docker - 带有 docker 后端的 traefik 反向代理 - 在 traefik 的配置文件中配置前端规则,而不是通过容器标签

为了在动态 IP 地址可能随时间变化的 Docker 容器前使用traefik作为反向代理,traefik 带有 docker backend。我能找到的所有设置示例都遵循相同的模式:

首先,在docker没有额外配置文件的模式下启动 traefik,激活主机网络模式(可选,如果需要,traefik 可以看到主机上的所有 Docker 网络)并挂载 Docker unix 套接字,以便 traefik 可以监听容器启动和停止。

然后,启动另一个容器并至少设置以下标签

  • traefik.backend:“一些后端名称”
  • traefik.frontend.rule: "Host: localhost; Method: GET" (或任何你的规则)
  • traefik.port: 80 (或者你的容器内部暴露的任何端口)

例子:

然后,做一个curl localhost,可以在traefik容器的日志中看到它接受了请求并将其路由到 NGINX 容器。

到目前为止,一切都很好......但是,我不喜欢我必须在应用程序本身(我的 docker- compose 文件设置容器,标签等通常位于)。相反,我想将其与应用程序分开并将其配置为 traefik 配置的一部分。

这有可能吗?我尝试的是traefik.frontend.rule从示例 nginx 容器中省略标签,而是安装以下配置文件traefik

因此,启动命令traefik变为:

但是,这似乎没有将配置文件中的前端规则与 nginx 容器中的后端标签附加在一起。curl localhost现在返回404 / Not found错误。

0 投票
1 回答
4600 浏览

ssl - 带有自签名证书的 Traefik

我有一个生成 ACME 证书的 Traefik 反向代理,我想在我的 docker 容器上启用 SSL。

在我的容器中,我有一个自签名证书,但 Traefik 拒绝连接到它。

的 docker-compose.yml

我收到了这个错误:

内部服务器错误

0 投票
2 回答
4996 浏览

reverse-proxy - 如何使用 docker 后端在 traefik 中设置默认主机容器?

我有一个使用 traefik 的反向代理设置。这很棒!

我试图弄清楚如何配置它,以便当有人去HOSTNAMEorwww.HOSTNAME时,我可以让它默认路由到我选择的某个容器/子域。假设有效的 DNS 记录。

这里有一个配置 toml 文件。然后我启动了一堆容器,docker 后端监视并获取这些容器。例如,

正在浏览static.HOSTNAME作品。雅虎!但假设我想要浏览HOSTNAME也可以服务static.HOSTNAME

任何提示都会很棒!谢谢。

0 投票
2 回答
3301 浏览

docker - traefik 主机名适用于 Web 应用程序,但不适用于 mongodb

我正在使用 docker-compose 和 traefik 运行一个 mongo 实例。

Mongo 运行良好,我可以使用127.0.0.1Mac 进行连接。

问题是我无法使用 hostname 进行连接myapp-mongo.docker.localhost。它仅适用于 IP 127.0.0.1。

尝试 ping IP 127.0.0.1 响应正常,但尝试 ping 主机名不起作用。

我已经添加127.0.0.1 proxy.docker.localhost/etc/hosts让 traefik 工作。

所有其他 Web 应用程序的主机名都可以正常工作,例如myapp.docker.localhost. 这个问题只发生在这个 mongodb 容器上。

0 投票
1 回答
5669 浏览

traefik - Traefik 中的路径和路径前缀匹配问题

使用 docker 容器中的 Traefix 1.2.3 版,我设置了以下文件。

如果我删除“web”部分周围的评论,所有流量都将转到该容器,而忽略 Path 或 PathPrefix 或任何其他尝试以 /api/ 开头的 URL 以转到服务容器。

像上面那样注释掉“web”容器,流量就会进入服务容器。这是意料之中的,因为当然没有其他容器。

我根本找不到如何让 Traefik 与 Path、PathPrefix、PathPrefixStrip 或任何其他组合一起工作。此处和文档中的示例似乎表明我应该得到我想要的行为,但我无法意识到这一点。