首页 > 其他分享 >Ingress 注释常用功能总结

Ingress 注释常用功能总结

时间:2024-03-12 12:01:31浏览次数:25  
标签:总结 redirect Ingress kubernetes ingress 注释 nginx io annotations

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;
       }

标签:总结,redirect,Ingress,kubernetes,ingress,注释,nginx,io,annotations
From: https://www.cnblogs.com/gshelldon/p/18067989

相关文章

  • STM32 LwIP学习过程问题总结(一):LwIP ping不通,抓包发现ICMP校验和为0x0000
    一、问题今天在将之前的STM32LwIP1.4.1版本程序移植到2.1.2版本上时,发现ping不同,但是开发板有ICMP回复包,黄颜色警告checksum为0x0000。说明LwIP移植应该是没问题,数据处理这一块出错了。 在网上找了下相关的错误,ST论坛有个问题和我这个一样。HardwareIPv4checksumonanST......
  • EOL 总结:CMakeLists 与 shell
    一、CMakeLists1、AUX_SOURCE_DIRECTORY定义:aux_source_directory查找在某个路径下的所有源文件###Demo1#查找当前目录下的所有源文件#并将名称保存到SRC_LIST变量aux_source_directory(.SRC_LIST)add_executable(main${SRC_LIST})###Demo2AUX_SOURCE_DIRECT......
  • 今日总结
        importjava.util.*;publicclasstest{staticScannerin=newScanner(System.in);publicstaticvoidinput(inta[],intn){//数组输入for(inti=0;i<n;i++){a[i]=in.nextInt();}}publicstaticin......
  • 博弈论个人笔记总结
    博弈论简单易懂的博弈论讲解(巴什博弈、尼姆博弈、威佐夫博弈、斐波那契博弈、SG定理)-The_Virtuoso-博客园(cnblogs.com)尼姆博弈(Nim)游戏引入:假设先手为$X$,后手为$Y$先假设有两堆石子,数量分别为a,b,如果$a\neqb\and\a>b$,$X$选石子$x$个让$a-x=b$,然后$......
  • cmd 的图论练习题(近期总结 2024.3.11)
    AGC010ERearranginglink题意:一个序列\(a_{1...n}\),两个人游戏。先手打乱这个序列,然后后手可以多次选择一对相邻的互质的数交换。先手希望最终序列字典序尽量小,后手则相反。两人都绝顶聪明,求最终序列。\(1\len\le2000,\space1\lea_i\le10^8\)考虑不互质的两个数\(a_i,a......
  • 3.11每日总结
    净现值计算 #include<iostream>#include<iomanip>#include<cmath>constintPROJECTS=6;constintYEARS=4;intmain(){//创建二维数组储存每个项目每年利润intmoney[PROJECTS][YEARS]={{-100000,-1000000,-100000,-120000},{10000,......
  • 总结
    主要用来写一些自己的漏洞最大的漏洞:不记得更新这篇博客……数据结构Splay:(平均一个题4个小时我也是很服气一定要记得随时splay要不然会T(当然还得记得及时update不然在一些需要siz的操作会寄如果是区间翻转的时候,splay的时候要顺便pushdown,先pushdown父节点再pushdown自己......
  • 【Python使用】python高级进阶知识md总结第3篇:静态Web服务器-返回指定页面数据,静态We
    python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对路径,创建、删除文件及目录命令,复制、移动文件及目录命令,终端命令格式的组成,查看命令帮助。HTTP请求报文,HTTP响应报文......
  • 一文学会JDBC实现java和mySQL的数据连接(尚硅谷学习课程代码+笔记+思路总结)
    JDBC是指数据库连接技术,用于java连接mySQL等数据库。本文详细介绍了尚硅谷课程中JDBC的学习内容和补充知识。概述java语言只提供规范接口,存在于java.sql.javax.sql包下,然后数据库软件根据java提供的规范实现具体的驱动代码(jar)jar包是java程序打成的一种压缩包格式,只要导入就......
  • 操作系统总结整理
    第一章1.现代操作系统都支持多任务,并具有并发、共享、虚拟和异步性特征并发和并行是两个不同的概念并发:是指两个或多个事件在同一时间间隔内发生,并发强调“同一时间间隔”并行:是指多个事件同时发生共享系统中的的资源可供内存中多个并发执行的进程共同使用......