小编TIP*_*vin的帖子

ingress nginx - 代理到外部 URL

我搜索(很多天以来......)如何使用 Ingress Nginx 以便使用外部 url 作为后端。

是的,我使用带有 externalName 的服务对象。我还在 nginx 中测试了很多指令但没有成功......

目标很简单:

  • 用户只能解析并加入我的公共 URL(url-public.com 和 url-public-2.com)
  • 我想将请求发送到超出我控制范围和集群的外部后端(url-ext.com)

我的入口可以解析 url-ext.com,但用户不能。当然,url-ext.com 这里有适当的证书,并且公开为 HTTPS ;)。注意:我的入口暴露了 2 个 url,但我认为这并不重要。

我的代码:

服务 :

kind: Service
apiVersion: v1
metadata:
  name: external-eip
  namespace: external-url
spec:
  type: ExternalName
  externalName: url-ext.com
Run Code Online (Sandbox Code Playgroud)

入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: external-eip
  namespace: external-url
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/upstream-vhost: "url-ext.com"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      #      more_clear_input_headers "Host" "X-Forwarded-Host";
      more_set_input_headers 'Host: url-ext.com';
      proxy_set_header Host url-ext.com;

spec:
  rules:
  - host: url-public.com
    http:
      paths:
      - path: …
Run Code Online (Sandbox Code Playgroud)

nginx kubernetes nginx-ingress

4
推荐指数
1
解决办法
7150
查看次数

标签 统计

kubernetes ×1

nginx ×1

nginx-ingress ×1