Files
k8s-docs/k8s/kevisual.cn/ingress/apps-ingressroute.yaml

91 lines
2.0 KiB
YAML

# Kevisual - kevisual.cn (支持 WebSocket)
---
# WebSocket 支持中间件 - 完整头部配置
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: websocket-headers
namespace: default
spec:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
X-Real-IP: ""
X-Forwarded-For: ""
X-Forwarded-Host: ""
---
# ServersTransport 配置 - 支持长连接
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: websocket-transport
namespace: default
spec:
serverName: ""
insecureSkipVerify: true
maxIdleConnsPerHost: 100
forwardingTimeouts:
dialTimeout: 30s
responseHeaderTimeout: 30s
idleConnTimeout: 90s
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: kevisual-https
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`kevisual.cn`)
kind: Rule
services:
- name: kevisual-external
port: 3005
serversTransport: websocket-transport
middlewares:
- name: websocket-headers
tls:
certResolver: letsencrypt
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: www-kevisual-https
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`www.kevisual.cn`)
kind: Rule
services:
- name: kevisual-external
port: 3005
serversTransport: websocket-transport
middlewares:
- name: websocket-headers
tls:
certResolver: letsencrypt
---
# 通配符子域名支持 *.kevisual.cn (兜底规则)
# apiVersion: traefik.io/v1alpha1
# kind: IngressRoute
# metadata:
# name: wildcard-kevisual-https
# namespace: default
# spec:
# entryPoints:
# - websecure
# routes:
# - match: HostRegexp(`^[a-zA-Z0-9-]+\.kevisual\.cn$`)
# kind: Rule
# services:
# - name: kevisual-external
# port: 3005
# serversTransport: websocket-transport
# middlewares:
# - name: websocket-headers
# tls:
# certResolver: letsencrypt