为某些响应禁用 nginx 入口控制器中的缓存控制

问题描述

我有这个入口配置,但所有 html 和 json 响应页面都不包含添加标题

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
Metadata:
  name: {{ $app }}-ingress
  labels:
    app: {{ $app }} 
    chart: chart-{{ $app }}
    app.kubernetes.io/managed-by: Helm
  annotations:
    Meta.helm.sh/release-name: {{ $app }}
    Meta.helm.sh/release-namespace: {{ .Release.Namespace }}
    kubernetes.io/ingress.class: Nginx
    Nginx.ingress.kubernetes.io/proxy-body-size: "{{ $proxy_body_size }}"
    Nginx.ingress.kubernetes.io/proxy-read-timeout: "{{ $proxy_read_timeout }}"
    Nginx.ingress.kubernetes.io/proxy-connect-timeout: "{{ $proxy_connect_timeout }}"
    Nginx.ingress.kubernetes.io/proxy-send-timeout: "{{ $proxy_send_timeout }}"
    Nginx.ingress.kubernetes.io/proxy-buffer-size: "{{ $proxy_buffer_size }}"
    Nginx.ingress.kubernetes.io/rewrite-target: /$1
    Nginx.ingress.kubernetes.io/configuration-snippet : |
        if ($request_uri ~* \.(html|json)) {
           add_header Cache-Control "no-cache,no-store";
        }
spec:
  tls:
    - hosts:
        - {{ $alias }}
  rules:
    - host: {{ $alias }}
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: {{ $app }}-service
              servicePort: http-back

我只想对 html 和 json 内容响应禁用缓存控制。当我删除 if ($request_uri ~* .(html|json)) 条件时,所有响应都添加了标头。所以这意味着配置片段中的条件不正确。

你能帮忙吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)