NGINX Ingress Controller 配置代理外部服务

使用背景

如果想要在 Ingress-nginx 中反向代理一个外部的 https 网站,可以使用以下的方式,这里以反向代理 https://a.qsh.com 为例:

实现方式

定义外部域名的服务

  • 创建一个类型为 ExternalName的 Service :
apiVersion: v1
kind: Service
metadata:
  name: external-proxy
  namespace: test
spec:
  externalName: a.qsh.com
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  sessionAffinity: None
  type: ExternalName

定义ingress

  • 创建 Ingress 规则暴露上面创建的 ExternalNameService:
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-test-web
  namespace: test
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS   # 指定后端协议为https
    nginx.ingress.kubernetes.io/upstream-vhost: a.qsh.com  # 指定转发上游的host为要代理的域名
spec:
  ingressClassName: nginx-ingress
  rules:
  - host: 'test.qsh.com'
    http:
      paths:
      - backend:
          service:
            name: external-proxy
            port:
              number: 443
        path: /
        pathType: ImplementationSpecific

完成创建后,访问 https://test.qsh.com 后,可以得到 a.qsh.com 的正常响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值