当前位置: 首页 > article >正文

Ingress-nginx中HTTPS的强制转发

文章目录

在使用aws 的NLB转发流量到ingress时,发现NLP上生成的转发配置不符合正常预期,如下图:
在这里插入图片描述

ingress-nginx service 配置如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
    service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip
    service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxxxxxxxxxx
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  labels:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
    app.kubernetes.io/version: 1.10.1
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  allocateLoadBalancerNodePorts: true
  loadBalancerClass: service.k8s.aws/nlb
  ports:
  - appProtocol: http
    name: http
    nodePort: 30587
    port: 80
    protocol: TCP
    targetPort: tohttps # 2443 端口
  - appProtocol: https
    name: https
    nodePort: 31999
    port: 443
    protocol: TCP
    targetPort: http
  selector:
    app.kubernetes.io/component: controller
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/name: ingress-nginx
  type: LoadBalancer

到这里可以看到 配置是没有问题的, 80端口的流量确实是指到了tohttp端口(2443),但这个端口又是什么端口呢。 为什么会有这样一个设定呢。

接下来查看ingress-nginx服务对于2443的设定,

        server {
                listen 2443;
                return 308 https://$host$request_uri;
        }

这里可以看出,对于2443端口,是强制对访问做了https跳转。
通过查看ingress-nginx官方文档,得到如下结果: “如果为该入口启用了 TLS,则控制器默认会将 (308) 重定向到 HTTPS”。
如何关闭呢。 参考:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#server-side-https-enforcement-through-redirect


http://www.kler.cn/news/357303.html

相关文章:

  • WPS 删除重复记录
  • 【最新华为OD机试E卷-支持在线评测】模拟目录管理 (200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • OpenGauss学习笔记
  • 基于springboot淮安动物园信息管理系统(源码+定制+开发)动物园数据管理平台、动物园信息系统优化
  • CSS 中的content-visibility属性
  • C语言小游戏--猜数字
  • LabVIEW提高开发效率技巧----用户权限控制
  • Scrapy | 爬取笑话网来认识继承自Spider的crawlspider爬虫类
  • 【Docker】Harbor 私有仓库和管理
  • IEC104规约的秘密之十二----扩展报文之文件断点续传
  • jmeter使用文档
  • HCIP-HarmonyOS Application Developer 习题(十五)
  • msql事务隔离级别 线上问题
  • 瑞云快图云渲染怎么样?渲染一张图贵吗?
  • 各类名词term解释....
  • 【记录】Windows|Windows 修改字体大全(Windows 桌面、VSCode、浏览器)
  • Unity Meta Quest 开发调试工具 Immersive Debugger
  • 图像中的数值计算
  • YOLO11来啦 | 详细解读YOLOv8的改进模块!
  • Windows环境下安装jdk8,含配置环境变量全过程