我搜索(因为很多天.)如何使用,以便使用外部url作为后端。
是的,我在externalName中使用服务对象。我还在nginx中测试了很多指令而没有成功..。
目标很简单:
url-public-2.com)
我的入口可以解析url-ext.com,用户不能。当然,url-ext.com在这里有适当的证书,并公开为HTTPS ;)。诺塔:我的入口暴露了两个url,但我不认为这很重要。
我的守则:
服务:
kind: Service
apiVersion: v1
metadata:
name: external-eip
namespace: external-url
spec:
type: ExternalName
externalName: url-ext.com入口:
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: /
pathType: Prefix
backend:
service:
name: external-eip
port:
number: 443
- host: url-public-2.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: external-eip
port:
number: 443结果(卷曲或浏览器访问):
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>和侵入日志:
2021/08/06 21:44:45 [error] 10873#10873: *2914631 upstream timed out (110: Operation timed out) while connecting to upstream, client: 10.203.65.14, server: url-public.com, request: "GET / HTTP/2.0", upstream: "https://10.203.64.5:443/", host: "url-ext.com"10.203.64.5是url-ext.com的真正IP。
还有,curl https://10.203.64.5:443/ -k -v -H "Host: url-ext.com"工作。
不要问我“为什么使用这个注释”,我不知道:p很多谷歌搜索和许多测试.
那么,当这个externalName (可能)也在RP下时,使用externalName的正确入口配置是什么?
Nota :重写和其他重定向不工作,因为它重写用户位置,我不想要它。用户不能访问和解析url-ext.com,只有url-public.com。
比尔,谢谢
发布于 2021-08-08 21:36:15
回复我自己。问题是我的侵入(以及我的所有K8S集群)都在HTTP代理下。
我已经为代理挂载了所有env变量,但似乎Ingress容器没有使用它.
因此,为了使它正常工作,我允许集群将80/443端口输出到目的地。
您只需要这样的注解:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/upstream-vhost: "url-ext.com"但是,如果你们中的任何人都知道如何设置我的大会来使用我的HTTP代理,我将需要它。
br
https://stackoverflow.com/questions/68687814
复制相似问题