NGINX控制器Kubernetes:需要在入口内更改主机头 脚本
我在运行NGINX和Kubernetes。我需要配置NGINX,以便它设置或覆盖主机头NGINX控制器Kubernetes:需要在入口内更改主机头 脚本,nginx,kubernetes,Nginx,Kubernetes,我在运行NGINX和Kubernetes。我需要配置NGINX,以便它设置或覆盖主机头Host:minio:9000到一个pod,这样pod将始终服务于认为它作为minio:9000托管的请求,而不管请求来自何处。我相信推荐的方法是使用NGINX并修改Pod的入口注释(可能我错了) 我目前是如何设置的 相反,我通过本指南使用了带头盔的nginx控制器 我是这样宣布进入的。指南建议我在入口YAML上使用nginx注释 apiVersion: networking.k8s.io/v1beta1 ki
Host:minio:9000
到一个pod,这样pod将始终服务于认为它作为minio:9000
托管的请求,而不管请求来自何处。我相信推荐的方法是使用NGINX并修改Pod的入口注释(可能我错了)
我目前是如何设置的
相反,我通过本指南使用了带头盔的nginx控制器
我是这样宣布进入的。指南建议我在入口YAML上使用nginx注释
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ template "fullname" . }}
labels:
chart: {{ template "chartVersion" . }}
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_input_headers 'Host: minio:9000';
spec:
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /
backend:
serviceName: {{ template "fullname" . }}
servicePort: {{ .Values.deployment.servicePort }}
许多导游说这会奏效。我试过了
nginx.ingress.kubernetes.io/upstream-vhost: minio:9000
我也试过了
nginx.ingress.kubernetes.io/configuration-snippet: |
access_by_lua_block {
ngx.var.best_http_host = 'minio:9000';
}
这些方法似乎都没有从集群内部更改主机头。如果我这样做
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Host 'minio:9000';
我收到400条回复,说主机头太多(这似乎是由于Pod运行Go造成的)。但至少我知道nginx正在收集注释
问题
- 如何在kubernetes中配置NGINX,以便它从入口内部更改主机头
- 也许我安装NGINX的方式不对?如果通过helm安装,那么从NGINX修改conf文件似乎并不容易。手动安装NGINX是否更好,而不是通过k8s或helm
nginx.ingres.kubernetes.io/rewrite-target://$1
剥离了集群内的路径。去掉此注释可以使入口按预期工作。Ug发现nginx.ingres.kubernetes.io/rewrite-target://$1 nginx.ingres.kubernetes.io/ssl-redirect:“false”破坏了我的路径,所以每次都在调用根。您好,当您解决问题时,请提供它作为更好的可视性的答案。
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Host 'minio:9000';