在 Traefik 中从一个域重定向到另一个域
回答问题 根据Traefik 1.7 文档您应该能够让 Traefik 使用以下命令执行 302 重定向: traefik.ingress.kubernetes.io/redirect-regex traefik.ingress.kubernetes.io/redirect-replacement 我的目标是简单地从地址中删除www.。 这是我尝试过的,但找不到 404 服务。 --- apiVe
·
回答问题
根据Traefik 1.7 文档您应该能够让 Traefik 使用以下命令执行 302 重定向:
-
traefik.ingress.kubernetes.io/redirect-regex
-
traefik.ingress.kubernetes.io/redirect-replacement
我的目标是简单地从地址中删除www.
。
这是我尝试过的,但找不到 404 服务。
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: www-redirect
namespace: public
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/redirect-regex: ^https?://www.example.com/(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://example.com/$1
spec:
rules:
- host: www.example.com
不幸的是,文档没有明确说明_如何_使用它们。在撰写本文时,唯一的谷歌点击是文档(上图)。
我目前的工作(假设它有助于解释问题)是将www.
流量路由到返回 302 的 nginx。
server {
listen 80;
server_name www.example.com;
return 302 https://example.com$request_uri;
}
这似乎有点矫枉过正。
Answers
我遇到了同样的问题并最终使它与:
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: www-redirect
namespace: public
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/preserve-host: "true"
traefik.ingress.kubernetes.io/redirect-permanent: "true"
traefik.ingress.kubernetes.io/redirect-regex: "^https://www.(.*)"
traefik.ingress.kubernetes.io/redirect-replacement: "https://$1"
spec:
tls:
- hosts:
- "example.com"
- "www.example.com"
secretName: example-tls
rules:
- host: example.com
- host: www.example.com
基本上我需要两个规则。
作为旁注,我还使用以下标志启动 trafik pod:
args:
- --api
- --kubernetes
- --logLevel=INFO
- --entryPoints=Name:https Address::443 TLS
- --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
- --defaultentrypoints=https,http
更多推荐
已为社区贡献20439条内容
所有评论(0)