我创建了一个Traefik(v2.9.8)中间件,似乎是正确的检测Traefik(显示在 Jmeter 板中,它被应用到网站的HTTP路由器),但当我去www.example.com
Traefik抛出404错误.
Docker组成:
version: "3.1"
services:
traefik:
restart: unless-stopped
image: traefik:v2.9.8
security_opt:
- no-new-privileges:true
ports:
- "80:80"
- "443:443"
volumes:
# Allow Traefik to use the system's Docker socket
# MUST be the same as in the config file "traefik.yml"
- /var/run/docker.sock:/var/run/docker.sock:ro
# Map the static conf into the container
- ./config/traefik/traefik.yml:/etc/traefik/traefik.yml:ro
# Map the dynamic conf into the container
- ./config/traefik/config.yml:/etc/traefik/config.yml:ro
- ./logs/traefik:/traefik-logs/
# Map the certificates into the container
- ./config/local-certs:/etc/certs:ro
networks:
- my_website
environment:
# Some env config, this works OK
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.traefik.entrypoints=https"
- "traefik.http.routers.traefik.rule=Host(`${TRAEFIK_DASHBOARD_SUBDOMAIN}.${ENV_HOST}`)"
# Other services here...
wordpress:
build:
context: ./wordpress
image: wordpress:v1
restart: unless-stopped
volumes:
# My volumes, working OK
networks:
- my_website
environment:
# Some env config, this works OK too
labels:
- "traefik.enable=true"
- "traefik.http.routers.wordpress.tls=true"
- "traefik.http.routers.wordpress.entrypoints=https"
- "traefik.http.routers.wordpress.middlewares=redirect-www@file"
- "traefik.http.routers.wordpress.rule=Host(`${ENV_HOST}`)"
Traefik主文件(EOF处的中间件):
global:
sendAnonymousUsage: false
api:
dashboard: true
insecure: false
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
watch: false
exposedByDefault: false
file:
# We use the same file as in the proxy volume
directory: /etc/traefik
watch: true
log:
# Path inside the container
filePath: "/traefik-logs/traefik-service.log"
# Alternative logging levels are: "DEBUG", "PANIC", "FATAL", "ERROR", "WARN", and "INFO".
level: WARN
format: common
entryPoints:
http:
address: ":80"
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
# Redirect www to non-www
http:
middlewares:
redirect-www:
redirectRegex:
regex: "^(https:\\/\\/)?www\\.(.+)"
replacement: "https://${2}"
permanent: true
我错过什么了吗?
1条答案
按热度按时间e3bfsja21#
是的,我错过了一些东西:添加一个
www
到我的网站的服务主机标签。这修复了问题,现在可以正常工作并从www重定向到非www。