目录

‌一. 域名重定向(HTTP→HTTPS/旧域名跳转)‌

‌二. 前后端分离Rewrite(路径改写)‌

‌三. 混合配置示例(重定向+Rewrite)‌

‌四. SSL/TLS配置(HTTPS加密)‌

‌五. 基本认证(Basic Auth)‌


‌一. 域名重定向(HTTP→HTTPS/旧域名跳转)

https-redirect.yaml


apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: https-redirectannotations:nginx.ingress.kubernetes.io/permanent-redirect: https://$host$request_uri
spec:rules:- host: old.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: dummy-serviceport:number: 80

逐行解释‌:

  • nginx.ingress.kubernetes.io/permanent-redirect:Nginx特有注解,返回301永久重定向
  • $host$request_uri:保留原始请求的域名和路径
  • dummy-service:虚拟服务(实际不会处理请求)

‌二. 前后端分离Rewrite(路径改写)

rewrite-frontend.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: rewrite-demoannotations:nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:rules:- host: app.example.comhttp:paths:- path: /api(/|$)(.*)pathType: Prefixbackend:service:name: backend-serviceport:number: 8080

逐行解释‌:

  • rewrite-target: /$2:将捕获的(.*)部分拼接到根路径
  • path: /api(/|$)(.*):正则匹配/api开头的路径,$2对应第二个捕获组
  • backend-service:8080:实际处理请求的后端服务

‌三. 混合配置示例(重定向+Rewrite)

combined-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: combined-ingressannotations:nginx.ingress.kubernetes.io/configuration-snippet: |if ($host = 'deprecated.com') {return 301 https://new.example.com$request_uri;}nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:rules:- host: new.example.comhttp:paths:- path: /static/(.*)pathType: Prefixbackend:service:name: frontend-serviceport:number: 80

关键点说明‌:

  • configuration-snippet:插入自定义Nginx代码片段实现复杂逻辑
  • 此配置同时完成旧域名跳转和静态资源路径改写

‌部署验证命令

# 应用配置 
kubectl apply -f https-redirect.yaml 
kubectl apply -f rewrite-frontend.yaml 
# 检查注解是否生效 
kubectl describe ingress combined-ingress | grep Annotations 
# 测试重定向(返回301头) 
curl -I http://old.example.com 

注意事项‌:

  1. Rewrite规则需与后端服务路由规则匹配
  2. 生产环境建议使用cert-manager自动管理HTTPS证书
  3. 不同Ingress Controller(如Traefik)注解语法可能不同

‌四. SSL/TLS配置(HTTPS加密)

tls-secret.yaml


apiVersion: v1
kind: Secret
metadata:name: example-tlsnamespace: default
type: kubernetes.io/tls
data:tls.crt: <base64编码的证书>tls.key: <base64编码的私钥>

证书需提前base64编码:cat cert.pem | base64 -w0

ssl-ingress.yaml

Version: networking.k8s.io/v1
kind: Ingress
metadata:name: secure-ingressannotations:nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:tls:- hosts:- secure.example.comsecretName: example-tlsrules:- host: secure.example.comhttp:paths:- path: /backend:service:name: web-serviceport: number: 80

关键参数说明:

  • ssl-redirect: "true" 强制HTTP跳转到HTTPS
  • tls块定义证书关联的域名和Secret

‌五. 基本认证(Basic Auth)

auth-secret.yaml

apiVersion: v1
kind: Secret
metadata:name: basic-authnamespace: default
type: Opaque
data:auth: $(echo -n 'username:password' | openssl base64 -A)

生成命令:htpasswd -c auth foo 然后base64编码

auth-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: auth-ingressannotations:nginx.ingress.kubernetes.io/auth-type: basicnginx.ingress.kubernetes.io/auth-secret: basic-authnginx.ingress.kubernetes.io/auth-realm: "Authentication Required"
spec:rules:- host: private.example.comhttp:paths:- path: /backend:service:name: private-serviceport:number: 8080

核心注解说明:

  • auth-type 指定认证方式为basic
  • auth-secret 关联存储凭据的Secret
  • auth-realm 浏览器弹出的认证提示文本

‌部署验证命令

# 应用配置 
kubectl apply -f tls-secret.yaml 
kubectl apply -f ssl-ingress.yaml 
# 检查证书状态 
kubectl describe ingress secure-ingress | grep -A3 'TLS' 
# 测试认证(返回401未授权) 
curl -v http://private.example.com 

注意事项:

  1. 生产环境建议使用Let's Encrypt通过cert-manager自动签发证书
  2. Basic Auth需配合HTTPS使用避免密码泄露
  3. 不同Controller可能使用不同注解(如Traefik的auth注解前缀为traefik.ingress)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87812.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87812.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87812.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12. grafana-Dashboard的Variable(过滤)使用

说明制作这样一个选择过滤的下拉框&#xff0c;可以选择某个服务器的步骤1. 点击最上面的Dashboard settings2. 选择Variables 并点击ADD variable3. 写出过滤的标签名和查询条件&#xff08;label_values(查询条件)&#xff09;4. 点击 save as... 保存退出5. 出来后左上角就…

Cursor一键续杯pro教程,支持最新1.0系列版本

使用前检查&#xff1a; 使用前请先看左下角&#xff0c;是否获取到Cursor的版本号 如果没有请先在 功能页面 -→ 自定义Cursor路径 选择你Cursor的安装的路径&#xff0c;并开启后重启YCursor&#xff0c;获取到版本后才能正常使用功能 检查软件左下角的权限标识是否为绿色 如…

pyhton基础【25】面向对象进阶六

目录 十七.单例模式 实现单例模式的两种方式 __new__方法概述 单例模式的使用场景 十七.单例模式 引入 单例模式是一种常用的软件设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。 实现单例模式的两种方式 使用类属性创…

后端树形结构

案例 在后端开发中&#xff0c;树形结构数据的查询和处理是一个常见的需求&#xff0c;比如部门管理、分类目录展示等场景。接下来&#xff0c;我们以一个部门管理系统为例&#xff0c;详细介绍如何实现后端的树查询功能。 案例背景 假设我们正在开发一个公司的内部管理系统&am…

高效沟通04-RIDE说服模型

高效沟通专栏–组织运转的命脉与个人成功的基石 目录 1. RIDE模型的核心理念2. RIDE模型的应用场景3. RIDE模型使用步骤4. RIDE模型示例与练习4.1 应用RIDE模型:4.2 练习:你来试试!5. 总结RIDE模型是一种结构化的说服框架,旨在帮助你在沟通(尤其是书面沟通或需要清晰逻辑…

利用selenium获取网页数据,脚本加载慢问题的解决办法

问题&#xff1a;最近在写一个脚本去获取一个网站的数据&#xff0c;用到一个表格中的数据&#xff0c;条目是1000条&#xff0c;需要逐条去获取网站上对应的数据&#xff0c;遇到的问题是脚本运行后&#xff0c;很久才开始打开驱动浏览器。经过很多次尝试&#xff0c;主要原因…

Ubuntu查看本机代理的实操指南

快速确认代理状态的必要性在Ubuntu系统中&#xff0c;代理设置是跨境访问、企业内网连接、开发调试的重要配置。无论是排查网络卡顿、验证代理是否生效&#xff0c;还是确保特定应用走代理通道&#xff0c;快速查看当前代理状态都是关键步骤。图形界面查看&#xff0c;可视化操…

三格电子——双通道 CAN(FD)转以太网

【SG-CAN(FD)NET-210】 一、功能描述 CANFD 完全向下兼容 CAN &#xff0c;以下统称 CAN(FD) 。 SG-CAN(FD)NET-210 是一款用来把 CANFD 总线数据转为网口数据的设 备。 网口支持 TCP Sever 、 TCP Client 、 UDP Sever 、 UDP Client 四种模式。 可以通过软件配置…

【一起来学AI大模型】卷积神经网络(CNN):视觉识别的革命性架构

一、CNN的核心思想与生物启示 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;是受生物视觉皮层启发的深度学习架构&#xff0c;专门用于处理网格状拓扑数据&#xff08;如图像、视频、音频&#xff09;。其核心创新在于&#xff1a; 局部感受野&#xff…

创建和编辑Crontab的方法

计划任务&#xff0c;在 Linux 中一般使用Crontab&#xff0c;通过crontab命令&#xff0c;我们可以在固定的间隔时间执行指定的系统指令或 Shell 脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。 创建…

在职场中如何培养创新思维?

芯片研发人员&#xff0c;授权发明专利40&#xff0c;聊聊技术层面的创新&#xff0c; 创新的本质&#xff0c;是旧有知识的创造性组合&#xff0c; 不存在无中生有的创新&#xff0c; 你必须建立本领域的知识体系&#xff0c;对过往各种创新&#xff0c;烂熟于心&#xff0…

设备健康管理平台功能深度对比:中讯烛龙如何以预测性维护重构工业运维范式?

全球制造业因非计划停机每年损失超千亿美元​&#xff0c;而搭载预测性维护系统的企业&#xff0c;设备可用率可提升至99.8%​​。 在工业4.0与智能制造浪潮下&#xff0c;设备健康管理平台已从“可选工具”升级为“核心生产力工具”。面对市场上功能繁杂的解决方案&#xff0c…

YOLOv11 架构优化:提升目标检测性能

YOLOv11 作为目标检测领域的最新成果&#xff0c;其架构优化是提升性能的关键。本文将详细探讨 YOLOv11 的架构改进&#xff0c;以及这些改进如何帮助模型在实时应用中实现更高的准确性和效率。 一、架构改进 &#xff08;一&#xff09;C3K2 块 C3K2 块是对 CSP 块的增强&a…

特别放送:关于一个无法修复的系统级Bug

大家好&#xff0c;我是阿威。 熟悉我的朋友都知道&#xff0c;我的博客基本只聊三件事&#xff1a;代码、架构和偶尔的职业生涯吐槽。但今天&#xff0c;我想破个例。起因是上周熬夜排查一个线上问题&#xff0c;一个分布式系统&#xff0c;流量洪峰一来&#xff0c;某个下游…

云原生-集群管理

1.集群管理命令&#xff1a;a.如何管理集群&#xff1f;-kubectl是用于控制Kubernetes集群的命令行工具b.语法格式&#xff1a;-kubectl [command] [TYPE] [NAME] [flages]command:子命令&#xff0c;如create、get、descrbe、deletetype&#xff1a;资源类型&#xff…

基于Linux下的vscode c/c++开发环境搭建详细教程

vscode是文本编辑而非集成开发环境&#xff0c;需要经过配置才能在其上编译执行代码。本教程将具体详解在linux上配置Visual Studio Code使用GCC C 编译器&#xff08;g&#xff09;和GDB调试器的方法&#xff08;GCC是GNU 编译器集合&#xff0c;GDB则是 GNU调试器&#xff09…

【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔

MatSwap: Light-aware material transfers in images 介绍任务&#xff1a;输入一张拍摄图像、示例材质纹理图像&#xff08;这里跟BRDF无关&#xff0c;通常我们讲到材质一般指的是SVBRDF&#xff0c;但是这里的材质指的只是纹理&#xff09;、用户为拍摄图像指定的遮罩区域&…

WebRTC 双向视频通话

WebRTC 双向视频通话 一、项目概述 WebRTC&#xff08;Web Real - Time Communication&#xff09;是一种支持浏览器之间进行实时通信的技术&#xff0c;它使得在网页上实现音视频通话、文件共享等功能变得更加容易。为了体验这个技术&#xff0c;所以我实现了webrtc - local…

Paimon lookup核心过程:分级查找、二分和缓存创建

LookupLevels LookupLevels 在 Paimon 中扮演着**“带缓存的、基于 Key 的数据查找引擎”**的角色。它的核心使命是&#xff1a;当需要根据主键&#xff08;Key&#xff09;查找某条数据时&#xff0c;能够高效地在 LSM-Tree 的多层&#xff08;Levels&#xff09;数据文件中定…

Ruby大会演讲实录:Baklib 如何用 AI 重构内容管理赛道

“2015 年成都 Ruby 大会时&#xff0c;我们还在做大数据项目&#xff1b;2025 年的今天&#xff0c;Baklib 已服务 800 多家企业。” 在 RubyConf China 2025 的演讲台上&#xff0c;Baklib 创始人Song以十年对比开篇&#xff0c;讲述了从技术爱好者到企业服务创业者的蜕变&am…