我有以下配置:
发病初期:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: nginx-ingress
namespace: nginx-ingress
spec:
selector:
matchLabels:
app: nginx-ingress
template:
metadata:
labels:
app: nginx-ingress
spec:
serviceAccountName: nginx-ingress
containers:
- image: nginx/nginx-ingress:1.4.2-alpine
imagePullPolicy: Always
name: nginx-ingress
ports:
- name: http
containerPort: 80
hostPort: 80
- name: https
containerPort: 443
hostPort: 443
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
args:
- -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
- -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
主要配置:
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config
namespace: nginx-ingress
data:
proxy-set-headers: "nginx-ingress/custom-headers"
proxy-connect-timeout: "11s"
proxy-read-timeout: "12s"
client-max-body-size: "5m"
gzip-level: "7"
use-gzip: "true"
use-geoip2: "true"
自定义标题:
apiVersion: v1
kind: ConfigMap
metadata:
name: custom-headers
namespace: nginx-ingress
data:
X-Forwarded-Host-Test: "US"
X-Using-Nginx-Controller: "true"
X-Country-Name: "UK"
我遇到以下情况:
-
如果我更改了“代理连接超时”、“代理读取超时”或“客户端最大主体大小”中的一个,我可以看到在控制器pods中生成的配置中出现的更改。
-
如果我更改了“gzip级别”(甚至尝试了“use gzip”)或“use-geoip2”中的一个,则在生成的配置中看不到任何更改(例如:“gzip on;”总是被注释掉,并且没有其他关于zip的提述,则gzip级别不会出现在任何地方)。
-
“Ingress nginx/Custom headers”中的自定义头完全没有添加(计划使用它们传递geoip2中的值)
否则,一切都很好,控制器日志显示我唯一的后端(一个转储头的ExpressJS应用程序)是正确的服务器,我得到了预期的响应等等。
我已经尽可能多地从Github上的示例中复制了内容,只做了最少的更改,但没有任何结果(包括在查看自定义头的示例时)。
任何想法或建议都会受到极大的赞赏。
谢谢!