LoadBalancer X-Forwared-For 路由后面的入口
Ingress behind LoadBalancer X-Forwared-For routing
我们的 nginx 入口控制器在负载均衡器后面。
Loadbalancer ist 在 X-Forwarded-For Headers 中设置原始主机。
例如:"x-forwarded-host": "www.portal-app.de".
我还在入口中设置了 use-forwarded-headers: "true"。
我的 Ingress 规则:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kd-portal-ingress
namespace: kd-portal-prod
spec:
rules:
- host: www.portal-app.de
http:
paths:
- backend:
serviceName: my-portal-app
servicePort: 5050
当我调用 Url 时,我们总是得到 nginx 默认 404 页面。
它也尝试解释场景。 www.portal-app.de 正在登陆 apache 负载均衡器。这个LB会将请求代理到k8s和ingresscontroller所在的ip运行。代理在 x-forward headers 中设置源主机信息。我的规则没有任何效果,我总是点击默认后端
是否可以在入口中的负载均衡器后面定义基于主机的路由?
是的,入口主要用途仅用于此目的。您在规则中指定域。如您所见,它在数组中规则,因此您可以添加许多域,它会在后端服务上重定向您 specified.Also 您也可以创建单独的入口对象。
示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: ingress
spec:
rules:
- host: your_domain_name
http:
paths:
- backend:
serviceName: your_service_name
servicePort: 8080
path: /
tls:
- hosts:
- your_domain_name
secretName: tls-certificate
我已经通过激活 apache 指令解决了这个问题 https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypreservehost
我们的 nginx 入口控制器在负载均衡器后面。 Loadbalancer ist 在 X-Forwarded-For Headers 中设置原始主机。 例如:"x-forwarded-host": "www.portal-app.de".
我还在入口中设置了 use-forwarded-headers: "true"。
我的 Ingress 规则:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: kd-portal-ingress
namespace: kd-portal-prod
spec:
rules:
- host: www.portal-app.de
http:
paths:
- backend:
serviceName: my-portal-app
servicePort: 5050
当我调用 Url 时,我们总是得到 nginx 默认 404 页面。
它也尝试解释场景。 www.portal-app.de 正在登陆 apache 负载均衡器。这个LB会将请求代理到k8s和ingresscontroller所在的ip运行。代理在 x-forward headers 中设置源主机信息。我的规则没有任何效果,我总是点击默认后端
是否可以在入口中的负载均衡器后面定义基于主机的路由?
是的,入口主要用途仅用于此目的。您在规则中指定域。如您所见,它在数组中规则,因此您可以添加许多域,它会在后端服务上重定向您 specified.Also 您也可以创建单独的入口对象。
示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
name: ingress
spec:
rules:
- host: your_domain_name
http:
paths:
- backend:
serviceName: your_service_name
servicePort: 8080
path: /
tls:
- hosts:
- your_domain_name
secretName: tls-certificate
我已经通过激活 apache 指令解决了这个问题 https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypreservehost