You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS ALB Ingress遇413请求实体过大问题求解决

解决AWS EKS ALB Ingress下Laravel API上传文件413错误

问题原因

你当前使用的是AWS ALB Ingress Controller,但Ingress配置中添加了Nginx Ingress专属的注解nginx.ingress.kubernetes.io/proxy-body-size: 100m,这个注解对ALB完全无效。AWS ALB默认的最大请求体大小为1MB,当上传文件超过这个限制时,ALB会直接拦截请求并返回413 Request Entity Too Large,请求根本不会到达后端Laravel服务,所以PHP日志中没有记录。

解决方案

1. 修改Ingress配置,添加ALB专属的请求体大小限制注解

将配置中的nginx.ingress.kubernetes.io/proxy-body-size: 100m替换为ALB Ingress Controller支持的注解:

alb.ingress.kubernetes.io/max-body-size: "104857600"

(注:值为字节数,104857600等于100MB;部分版本的ALB Controller也支持直接使用"100M"格式)

修改后的完整Ingress配置示例:

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/max-body-size: "104857600" # 新增:限制最大请求体为100MB
  labels:
    app: appapi
  name: app-ingress
  namespace: app
spec:
  rules:
  - http:
      paths:
      - backend:
          service:
            name: app-service
            port:
              number: 80
        path: /*
        pathType: ImplementationSpecific

2. 更新Ingress资源

执行kubectl命令应用修改后的配置:

kubectl apply -f your-ingress-file.yaml -n app

3. 等待ALB配置生效

ALB Controller需要几分钟时间更新负载均衡器的配置,可通过AWS控制台查看ALB状态,确认配置更新完成。

4. 验证后端Laravel配置(可选但建议)

虽然当前问题由ALB拦截导致,但为避免后续后端层面的限制,确保Laravel所在PHP环境配置了足够大的上传限制:

  • 修改php.ini中的upload_max_filesize = 100M和post_max_size = 100M
  • 重启PHP-FPM或相关服务

内容的提问来源于stack exchange,提问作者rholdberh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 09:45:42