I need to configure nginx to send a JSON response for 413 status code. I've tried this:
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: 80but no success. It still returns html page with text 413 Request Entity Too Large.
Could you please suggest how to configure nginx in kubernetes to return json on 413?
You can try adding this snippet to ingress
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;