Dan*_*elM 13 kubernetes traefik kubernetes-ingress
根据文档,你应该能够让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
Run Code Online (Sandbox Code Playgroud)
不幸的是,文档没有明确说明如何使用它们.在撰写本文时,唯一的谷歌就是文档(上图).
我目前的工作(假设它将有助于解释问题)是将www.
流量路由到返回302的nginx.
server {
listen 80;
server_name www.example.com;
return 302 https://example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
这看起来有点矫枉过正.
我遇到了同样的问题,最终使它与:
---
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
Run Code Online (Sandbox Code Playgroud)
基本上我需要这两个规则。
作为旁注,我还使用以下标志启动 trafik pod:
args:
- --api
- --kubernetes
- --logLevel=INFO
- --entryPoints=Name:https Address::443 TLS
- --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
- --defaultentrypoints=https,http
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1696 次 |
最近记录: |