Kubernetes ingress-nginx 不返回 http 响应标头

时间:2020-12-22 05:01:44

标签: kubernetes kubernetes-ingress

我遇到了一个问题,即 ingress-nginx(反向代理)没有从应用程序容器返回 http 响应头 (ETag)。

它在没有进入的情况下工作正常。

Missing http response header

任何帮助将不胜感激。

以下是 Ingress yaml 文件的片段

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ng-api-ngress
  namespace: ng-prod
  labels:
    app: numbergenerator
  annotations:
    #nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-headers: etag
    nginx.ingress.kubernetes.io/cors-expose-headers: etag
    #nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
spec:
  rules:
  - host: kubernetes.docker.internal.api
    http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: ng-backend
            port:
              number: 80

1 个答案:

答案 0 :(得分:1)

您可以添加此 Nginx ingress 注释:

nginx.ingress.kubernetes.io/server-snippet: |
      etag on;
nginx.ingress.kubernetes.io/configuration-snippet: |
      more_set_headers "server: hide";

如果启用了 Gzip,Nginx 入口将不会添加或传递 etag。

据我所知,Nginx 不会在反向代理配置中生成 etag,但是如果需要,您可以从后端代码生成和管理。