nginx - 到外部网站的入口 Nginx 代理(Webflow 托管)
问题描述
我有一个 EKS 集群,以及一个基于 Webflow(并由其托管)的单独网站。
集群落后cluster.com
和网站website.webflow.io
我想要实现的是代理cluster.com/website
请求website.webflow.io
根据我的研究,这个问题可以/可能通过 ExternalName 服务来解决。不幸的是,它并没有为我解决这个问题,它正在尝试在集群中进行 DNS 查找。我也尝试了 Endpoints 的各种其他配置。ExternalName 似乎是我尝试过的所有方法中最有希望的,这就是我在下面附加配置的原因。
这是我的配置的样子:
---
kind: Service
apiVersion: v1
metadata:
namespace: development
name: external-service
spec:
type: ExternalName
externalName: website.webflow.io
ports:
- port: 443
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: development
name: external-ingress
annotations:
ingress.kubernetes.io/preserve-host: "false"
ingress.kubernetes.io/secure-backends: "true"
ingress.kubernetes.io/upstream-vhost: "website.webflow.io"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/server-snippet: |
proxy_ssl_name website.webflow.io;
proxy_ssl_server_name on;
spec:
rules:
- host: cluster.com
http:
paths:
- path: /website
backend:
serviceName: external-service
servicePort: 443
有没有直接的方法来实现这一目标?配置中有什么突出的错误?
解决方案
这就是我所做的。
我应用了您的配置,但更改了以下注释名称:
ingress.kubernetes.io/upstream-vhost: "website.webflow.io"
对于我在nginx 入口文档中找到的那个:
nginx.ingress.kubernetes.io/upstream-vhost: "website.webflow.io"
^^^^^^
试试看,如果它解决了,请告诉我。
编辑:这是我使用的完整 yaml:
---
kind: Service
apiVersion: v1
metadata:
name: external-service
spec:
type: ExternalName
externalName: website.webflow.io
ports:
- port: 443
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: external-ingress
annotations:
ingress.kubernetes.io/preserve-host: "false"
ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/upstream-vhost: "website.webflow.io"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/server-snippet: |
proxy_ssl_name website.webflow.io;
proxy_ssl_server_name on;
spec:
rules:
- host: cluster.com
http:
paths:
- path: /website
backend:
serviceName: external-service
servicePort: 443
推荐阅读
- android - 如何更改 Lineage OS 构建的编译器标志
- ruby-on-rails - 里亚尔路由错误:因为控制器名称与型号名称不同?
- thymeleaf - Spring WebFlux 和 Thymeleaf 表单验证消息
- tensorflow - 无法在此平台上安装 TensorFlow
- sql - SQL查询显示基于另一个表范围内的记录计数
- linux - Ping 有效,但 iperf 没有显示到主机的路由
- python - 带字典的插入排序
- python - 从 pysapk 中的时间戳列中减去持续时间
- php - Docker 环境变量在 PHP Web 应用程序中不可访问
- python - 在 Python 中将 csv.open 作为函数编写