- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在我的产品(django、postgresql、gunicorn)中实现了 traefik,当我使用我的/api 和/admin 时,所有的工作都是正确的。
但 traefik 的仪表板工作不正确(我可以登录并转到/dashboard/,但它显示空白字段。)
日志:
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:21:42 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 104 "web@docker" "http://172.21.0.4:8000" 6ms
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:21:47 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 105 "web@docker" "http://172.21.0.4:8000" 2ms
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:21:52 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 106 "web@docker" "http://172.21.0.4:8000" 2ms
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:21:57 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 107 "web@docker" "http://172.21.0.4:8000" 2ms
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:22:02 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 108 "web@docker" "http://172.21.0.4:8000" 2ms
web | Not Found: /api/overview
me-project-traefik-1 | 78.24.102.87 - - [15/Jun/2022:10:22:07 +0000] "GET /api/overview HTTP/2.0" 404 179 "-" "-" 109 "web@docker" "http://172.21.0.4:8000" 3ms
docker-compose 文件:
version: '3.7'
services:
web:
container_name: web
build:
context: ./MoreEnergy
dockerfile: Dockerfile.prod
restart: always
env_file: ./.env.prod
entrypoint: sh ./entrypoint.sh
command: gunicorn MoreEnergy.wsgi:application --bind 0.0.0.0:8000
expose:
- 8000
volumes:
- static_volume:/home/app/web/staticfiles
- media_volume:/home/app/web/mediafiles
depends_on:
- db
labels:
- "traefik.enable=true"
- "traefik.http.routers.web.rule=Host(`my.site.com`)"
- "traefik.http.routers.web.tls=true"
- "traefik.http.routers.web.tls.certresolver=letsencrypt"
db:
container_name: dev_db
image: postgres:12.0-alpine
ports:
- "5432:5432"
env_file: ./.env.prod
volumes:
- postgres_data:/var/lib/postgresql/data/
traefik:
build:
context: ./traefik
dockerfile: Dockerfile.traefik
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./traefik-public-certificates:/certificates"
command:
- "--api=true"
- "--api.dashboard=true"
- "--providers.docker=true"
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.entrypoints=dashboard"
- "traefik.http.routers.dashboard.rule=Host(`my.site.com`) && PathPrefix(`/dashboard`)"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.middlewares=auth"
- "traefik.http.middlewares.auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/"
volumes:
postgres_data:
static_volume:
media_volume:
可能,traefik 试图发出他的内部 api 请求,但无法访问它们。我的项目中有带有“/api/”前缀的 api。我想,traefik 与我的 api 有冲突。还是不行?
真实主机名被替换为 my.site.com
。
最佳答案
I guess, traefik has conflict with my api. Or not?
是的,有冲突。
在您的示例中,仪表板规则设置为
- "traefik.http.routers.dashboard.rule=Host(`my.site.com`) && PathPrefix(`/dashboard`)"
但是,根据 Dashboard Router Rule 上的文档,您需要确保:
As underlined in the documentation for the api.dashboard option, the router rule defined for Traefik must match the path prefixes /api and /dashboard.
这是与您的应用程序的冲突。查看Traefik's API Endpoints的综合列表您可以通过提供以下仪表板规则来解决此问题:
- "traefik.http.routers.dashboard.rule="Host(`my-domain.com`) && (PathPrefix(`/debug`) ||PathPrefix(`/api/http`) || PathPrefix(`/api/tcp`) || PathPrefix(`/api/udp`) || PathPrefix(`/api/entrypoints`) || PathPrefix(`/api/overview`) || PathPrefix(`/api/rawdata`) || PathPrefix(`/api/version`) || PathPrefix(`/dashboard`))"
只需确保它捕获所有相关端点并且不会干扰您的自定义应用程序。
关于docker - Traefik 仪表板是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72629847/
我正在尝试使用两个域和使用 Let's Encrypt 生成的证书来设置 traefik 的 dockerized 版本。 我已经修改了 traefik.toml 看起来像这样: [acme] e
traefik.frontend.rule=Host:example.com 将对 example.com 的请求重定向到该后端。那么traefik.domain有什么用呢? 最佳答案 默认前端规则为
traefik.frontend.rule=Host:example.com 将对 example.com 的请求重定向到该后端。那么traefik.domain有什么用呢? 最佳答案 默认前端规则为
我使用 docker compose(运行 swarm 模式)进行了以下设置: mydomain.com --> ContainerA:8080 但我想要的是通过标签,为同一个容器指定以下内容: my
我正在尝试使用 Traefik 在我的 Docker Swarm 模式集群中部署代理多个应用程序。 我已经得到它以便它代理一个命名的主机,但我希望它代理一个命名的主机和路径,但我无法计算出我需要使用的
我绝对爱上了 Traefik。然而,作为初学者,我想念 Nginx 风格 nginx -t来验证配置文件。 我在 docker 容器中运行 traefik,每当我更新我的配置文件(*.toml 文件)
我决定将 traefik 的版本从 1.7.x 升级到 2.2.1。 所以我遵循了上述解决方案的指导方针(https://gist.github.com/fatihyildizhan/8f124039
我们使用 traefik 来反向代理我们的微服务环境,在 Kubernetes 的 staging 和 prod 上运行,并在本地使用 docker-compose。我们正在尝试将请求代理到特定微服务
如何为日志文件启用日志轮换,例如访问.log。 这是内置的吗? 文档只说“这允许日志由外部程序旋转和处理,例如 logrotate” 最佳答案 如果您正在运行 Traefik 在 docker 容器然
我需要像这样重写我的应用程序的 URL:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-confi
我需要将 SSL 连接直接发送到后端,而不是在我的 Traefik 上解密。后端需要接收https请求。 我尝试了 traefik.frontend.passTLSCert=true 选项,但是当我访
使用 docker,我尝试使用 HTTPS 端口 443 设置 traefik 后端,因此 traefik 容器和应用程序容器(apache 2.4)之间的通信将被加密。 我收到了 Internal
我有一个容器('矩阵'),基于 https://github.com/silvio/docker-matrix (虽然这可能并不重要)。 它在端口 8448 和 3478(不是 80 或 443)上运
我是 Docker 和 Traefik 的新手,所以我决定和他们一起玩一下。我试着按照这个 digital ocean 教程:https://www.digitalocean.com/communit
我有一个“服务器”设置,在容器中运行多个服务,其中 traefik 工作得很好。我想为在单独计算机上运行的服务添加虚拟主机,以便我可以访问 hassio.domain.com 并转发到该服务器。有一次
我已经将 Traefik 设置为在 Docker Swarm 模式下工作。我已使用以下命令将 Portainer 部署到集群中: docker service create
我正在从 Nginx 迁移到 Traefik 作为 Docker Swarm 的反向代理。 目前,每个带有 Bearer Token 的请求都会被发送到身份验证服务(在 Swarm 中运行的微服务),
使用 docker 容器中的 Traefix 1.2.3 版,我设置了以下文件。 traefik: image: traefik command: --web --docker --docke
我正在考虑为我的网络项目 (Kestrel/.Net Core) 将 Apache 替换为 Traefik。阅读文档后,关于 Traefik,我还有一些不清楚的地方: 1/Traefik 是否自动处理
我提前为我对 Traefik 的新手理解道歉,但有没有办法重写“非 www”域 带有基于请求的变量 ? 我已经在谷歌上搜索了一个多小时,找不到答案。 这是我如何在 Apache 中执行此操作的示例。你
我是一名优秀的程序员,十分优秀!