首页 > 解决方案 > Kubernetes ingress-nginx 不返回 http 响应标头

问题描述

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

它工作正常,没有入口。

缺少 http 响应标头

任何帮助将不胜感激。

以下是 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

标签: kuberneteskubernetes-ingress

解决方案


您可以添加此Nginx ingress注释:

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

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

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


推荐阅读