You need to enable JavaScript to run this app.
导航

Nginx Ingress 使用 HTTPS 对接后端服务

最近更新时间2023.12.26 19:38:55

首次发布时间2023.12.26 19:38:55

一般情况下,Nginx Ingress 与后端服务的对接使用的是 HTTP 协议,为保证后端通信安全,您可以通过 Annotation 配置使用 HTTPS 协议对接后端服务器。本文为您介绍如何通过 HTTPS 对接后端服务器。

前提条件

操作步骤

步骤一:配置保密字典

  1. 已获取 SSL 证书和密钥,本文以tls.keytls.crt为例。
  2. 执行以下命令,创建名称为 ingress-secret,类型为kubernetes.io/tls的保密字典。
kubectl create secret tls ingress-secret --key tls.key --cert tls.crt

步骤二:配置路由规则

  1. 创建 Ingress 的 YAML 文件。示例文件nginx-ingress.yaml代码如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress # 路由规则的名称
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # 使用 HTTPS 协议对接后端服务器
spec:
  ingressClassName: nginx # 指定 Ingress Controller
  rules:
  - host: example.com # 转发规则域名
    http:
      paths:
      - backend:
          service:
            name: service-demo # 请求被转发到的目标服务名称
            port:
              number: 80 # 请求被转发到的目标服务开放端口号
        path: / # 访问路径
        pathType: Prefix # 路径类型:Exact(精确匹配)/Prefix(前缀匹配)
  tls:
    - secretName: ingress-secret # 指定 ingress 使用的保密字典名称
  1. 执行以下命令,创建 Ingress。
kubectl apply -f nginx-ingress.yaml