gpt4 book ai didi

docker - 将 Traefik 前端重定向替换与 PathPrefixStrip 相结合

转载 作者:行者123 更新时间:2023-12-01 15:39:36 29 4
gpt4 key购买 nike

我在 traefik.frontend.redirectPathPrefixStrip 之间遇到一些冲突。下面的 docker-compose.yml 文件始终将 www.mysite.nl/adminer 路由到 WordPress 容器。如果我省略重定向规则,它会正常工作,并且我会被路由到管理员实例。我怎样才能使这些规则一起发挥作用?

深入了解docker-comose.yml:

version: '3'
services:
wordpress:
image: wordpress:latest
restart: $RESTART
container_name: ${COMPOSE_PROJECT_NAME}_wp
depends_on:
- mysql
networks:
- web
labels:
- 'traefik.backend=$COMPOSE_PROJECT_NAME'
- 'traefik.entrypoint=https'
- 'traefik.enable=true'
- 'traefik.frontend.rule=Host:mysite.nl, www.mysite.nl, cdn.mysite.net'
# omitting these rules make the adminer instance reachable
- 'traefik.frontend.redirect.regex=^https?://mysite.nl/(.*)'
- 'traefik.frontend.redirect.replacement=https://www.mysite.nl/$${1}'
mysql:
image: mysql:latest
restart: $RESTART
container_name: ${COMPOSE_PROJECT_NAME}_db
networks:
- web
adminer:
image: adminer:4.6.2
restart: $RESTART
container_name: ${COMPOSE_PROJECT_NAME}
depends_on:
- mysql
networks:
- web
labels:
- 'traefik.backend=${COMPOSE_PROJECT_NAME}_adminer'
- 'traefik.entrypoint=https'
- 'traefik.enable=true'
- 'traefik.frontend.rule=Host:www.mysite.nl;PathPrefixStrip:/adminer'

networks:
web:
external:
name: traefik_${COMPOSE_PROJECT_NAME}_web

最佳答案

您遇到的问题是由于规则重叠造成的。

请求www.mysite.nl/adminer

同时匹配:traefik.frontend.rule=主机:mysite.nl、www.mysite.nl、cdn.mysite.nettraefik.frontend.rule=Host:www.mysite.nl;PathPrefixStrip:/adminer

因此 Traefik 不知道将请求路由到哪个。

使用traefik.frontend.priority标签设置匹配顺序(来自https://docs.traefik.io/configuration/backends/docker/#on-containers)

关于docker - 将 Traefik 前端重定向替换与 PathPrefixStrip 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51329861/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com