Ingress 注释常用功能总结
ingress 注释常用功能总结
--annotations-prefix
# 特定于 NGINX 控制器的入口注释的前缀。(默认“nginx.ingress.kubernetes.io”)
1、域名重定向
这个配置会把www.kailinhr.com
跳转到www.zhuoliehr.com
。
# 主要配置
nginx.ingress/permanent-redirect-code: "301"
nginx.ingress/configuration-snippet: |
rewrite ^ https://www.zhuoliehr.com$request_uri? permanent;
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress/hsts: "false"
nginx.ingress/hsts-max-age: "600"
nginx.ingress/permanent-redirect-code: "301"
nginx.ingress/ssl-redirect: "false"
nginx.ingress/configuration-snippet: |
rewrite ^ https://www.zhuoliehr.com$request_uri? permanent;
labels:
app: php-zhuolie-pc
name: php-zhuolie-pc-ex1
spec:
ingressClassName: nginx
rules:
- host: www.kailinhr.com
http:
paths:
- backend:
service:
name: php-zhuolie-pc
port:
number: 80
path: /
pathType: Prefix
# 添加禁用缓存的头部信息
nginx.ingress/configuration-snippet: |
more_set_headers 'Cache-Control: no-cache';
2、匹配特定后缀返回指定文本
这种方式可以用于dns验证,或者其它指定文本验证。
访问/actuator
会返回{"status":"success","result":"nginx json"}
的内容。
nginx.ingress.kubernetes.io/server-snippet: >-
location ~ /actuator {
default_type application/json; return
200 '{"status":"success","result":"nginx json"}';
}
3、强制https
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
通过这个annotation可以强制 https,如果是http请求,会通过 301 redirect到 https
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
nginx.ingress/hsts: "false" # 告诉浏览器可以使用http访问
nginx.ingress/hsts-max-age: "600" # 控制hsts参数用https访问多久会失效,因为上面配置了hsts: false,所以这个配置不会生效
nginx.ingress/ssl-redirect: "false" # 是否强制跳转到https false表示不强制跳转
4、设置跨域请求
annotations:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For, X-app123-XPTO"
nginx.ingress.kubernetes.io/cors-expose-headers: "*, X-CustomResponseHeader"
nginx.ingress.kubernetes.io/cors-max-age: 600
nginx.ingress.kubernetes.io/cors-allow-credentials: "false"
5、限流
- 通过 rps 限制每秒请求数,rpm 限制每分钟请求数,connections限制连接数
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/limit-rps: "5"
nginx.ingress.kubernetes.io/limit-rpm: "300"
nginx.ingress.kubernetes.io/limit-connections: "10"
6、proxy最大body
- 这个主要是针对外部请求,防止将流量打满,proxy-body-size 设置最大请求 body,如果超过则会返回 413 请求错误。
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 8m
7、白名单功能
annotations:
ingress.kubernetes.io/whitelist-source-range: "10.1.0.0/24,172.10.0.1"
8、自定义配置
新增请求头
annotations:
nginx.ingress.kubernetes.io/server-snippet: |-
add_header Shy-Test 888;
# 添加到了server里面
more_set_headers 'Shy-Hello: hello' 'Demo: demo';
# 添加到了location / proxy里面
proxy_set_header My-Custom-Header $http_my_custom_header;
特定的资源返回403。
nginx.ingress/server-snippet: |
if ($request_uri !~* "_nuxt|js|browserTips|searchspiderpush" ){
return 403;
}
location = / {
return 403;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器