nginx-ingress 为特定路径添加自定义 header
nginx-ingress add custom header for a specific path
我在 kubernetes 环境中有以下 nginx-ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "cache-control: no-store";
more_set_headers "MyCustomHeader: Value";
spec:
rules:
- http:
paths:
- backend:
serviceName: svc1
servicePort: 80
# Want to add the custom headers in this path only
path: /
- backend:
serviceName: svc2
servicePort: 80
path: /cacheable-path
我有几个 header 想设置 Cache-Control
和 MyCustomHeader
。但我希望这些 header 只为根路径 /
设置,而不是为其他路由(如 /cacheable-path
)设置。
如何实现?添加注释会导致 header 附加到所有响应。我只想将 header 添加到特定路径。
无法为单个 Ingress 资源中的特定路径添加 header。您将必须创建两个 Ingress 资源。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "cache-control: no-store";
more_set_headers "MyCustomHeader: Value";
spec:
rules:
- http:
paths:
- backend:
serviceName: svc1
servicePort: 80
path: /
没有header
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- backend:
serviceName: svc2
servicePort: 80
path: /cacheable-path
我在 kubernetes 环境中有以下 nginx-ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "cache-control: no-store";
more_set_headers "MyCustomHeader: Value";
spec:
rules:
- http:
paths:
- backend:
serviceName: svc1
servicePort: 80
# Want to add the custom headers in this path only
path: /
- backend:
serviceName: svc2
servicePort: 80
path: /cacheable-path
我有几个 header 想设置 Cache-Control
和 MyCustomHeader
。但我希望这些 header 只为根路径 /
设置,而不是为其他路由(如 /cacheable-path
)设置。
如何实现?添加注释会导致 header 附加到所有响应。我只想将 header 添加到特定路径。
无法为单个 Ingress 资源中的特定路径添加 header。您将必须创建两个 Ingress 资源。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "cache-control: no-store";
more_set_headers "MyCustomHeader: Value";
spec:
rules:
- http:
paths:
- backend:
serviceName: svc1
servicePort: 80
path: /
没有header
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- backend:
serviceName: svc2
servicePort: 80
path: /cacheable-path