Nginx Ingress 添加注解
- 2025-06-26 18:07:00
- 丁国栋
- 原创 5
在 Nginx Ingress 中添加 X-Forwarded-Proto 配置注解
要在 Nginx Ingress 控制器或者 应用 Ingress 中添加 X-Forwarded-Proto
头部,可以使用以下注解:
方法一:使用 nginx.ingress.kubernetes.io/configuration-snippet
metadata:
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header X-Forwarded-Proto $scheme;
方法二:使用专门的注解
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-set-headers: "X-Forwarded-Proto: $scheme"
完整 Ingress 示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header X-Forwarded-Proto $scheme;
spec:
ingressClassName: nginx
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
全局配置(修改 ConfigMap)
如果你想在所有 Ingress 资源中全局设置这个头部,可以修改 Nginx Ingress 控制器的 ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-configuration
namespace: ingress-nginx
data:
proxy-set-headers: "ingress-nginx/custom-headers"
然后创建另一个 ConfigMap 来定义自定义头部:
apiVersion: v1
kind: ConfigMap
metadata:
name: custom-headers
namespace: ingress-nginx
data:
X-Forwarded-Proto: "$scheme"
验证
部署后,你可以通过以下方式验证头部是否正确添加:
curl -v http://example.com
或者在应用程序中检查 X-Forwarded-Proto
头部的值。
注意:$scheme
变量会根据请求是 HTTP 还是 HTTPS 自动设置为 "http" 或 "https"。
其他常见的注解
- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "0" # 0 表示不限制,其他值例子为 200M
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300" # 单位为秒
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
发表评论