使用 Nginx Ingress Controller 添加对 413 状态代码的自定义响应
Add custom response on 413 status code using the Nginx Ingress Controller
我需要配置 nginx 以发送 JSON 413 状态码响应。我试过这个:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/server-snippet: |
proxy_intercept_errors on;
error_page 413 /413.json;
location /413.json {
return 413 '{"error": {"status_code": 413,"status": "TEST"}}';
}
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
但没有成功。它仍然是 return 的 html 页面,文本为 413 Request Entity Too Large
。
能否请您建议如何在 413 上将 kubernetes 中的 nginx 配置为 return json?
您可以尝试将此代码段添加到入口
nginx.ingress.kubernetes.io/server-snippet: |
location @custom_413 {
default_type application/json;
return return 413 '{"error": {"status_code": 413,"status": "TEST"}}';;
}
error_page 413 @custom_413;
我需要配置 nginx 以发送 JSON 413 状态码响应。我试过这个:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/server-snippet: |
proxy_intercept_errors on;
error_page 413 /413.json;
location /413.json {
return 413 '{"error": {"status_code": 413,"status": "TEST"}}';
}
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
但没有成功。它仍然是 return 的 html 页面,文本为 413 Request Entity Too Large
。
能否请您建议如何在 413 上将 kubernetes 中的 nginx 配置为 return json?
您可以尝试将此代码段添加到入口
nginx.ingress.kubernetes.io/server-snippet: |
location @custom_413 {
default_type application/json;
return return 413 '{"error": {"status_code": 413,"status": "TEST"}}';;
}
error_page 413 @custom_413;