在k3s上使用Traefik时,可以通过配置Traefik的中间件来获取客户端的真实IP地址。以下是一种常见的方法:
real-ip-middleware.yaml
,并在其中添加以下内容:apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: real-ip-middleware
spec:
realIP:
headerField: "X-Forwarded-For"
这个配置文件指定了使用X-Forwarded-For
头字段来获取真实IP地址。
kubectl apply -f real-ip-middleware.yaml
real-ip-middleware
,例如:apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: my-ingress
spec:
entryPoints:
- web
routes:
- match: Host(`example.com`) && PathPrefix(`/`)
kind: Rule
services:
- name: my-service
port: 80
middlewares:
- name: real-ip-middleware
这个配置将中间件应用到名为my-ingress
的Ingress路由规则中。
kubectl apply -f my-ingress.yaml
现在,Traefik将会使用X-Forwarded-For
头字段来获取客户端的真实IP地址,并将其传递给后端服务。
请注意,以上步骤仅适用于使用Traefik作为反向代理的情况。如果你使用其他反向代理或负载均衡器,可能需要使用不同的配置方法来获取客户端的真实IP地址。
领取专属 10元无门槛券
手把手带您无忧上云