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

Apache OpenWhisk本地Docker部署遇413请求实体过大问题求助

解决Apache OpenWhisk本地Docker部署时上传5MB Action包报413 Request Entity Too Large的问题

我之前帮不少开发者解决过本地OpenWhisk部署的类似问题,你的情况其实很常见——不是OpenWhisk本身不支持5MB的Action,而是前端的API网关(比如Nginx)默认设置了较小的请求体大小限制,先把你的请求拦下来了。

问题成因

本地通过Docker部署的Apache OpenWhisk(基于incubator-openwhisk-devtools),其前端的API网关组件(通常是Nginx)默认配置了较小的client_max_body_size值(比如1MB或2MB),这个限制会优先于OpenWhisk自身的Action大小限制生效。虽然OpenWhisk默认允许最大50MB的Action包,但网关层直接拒绝了超过自身限制的请求,所以你才会收到413错误。

解决方案

下面是针对Docker部署场景的具体调整步骤:

1. 修改API网关(Nginx)的请求体大小限制

  • 找到你部署OpenWhisk devtools的目录,打开docker-compose.yml或者对应的Nginx配置文件(比如nginx.conf)
  • 在Nginx的server配置块中,添加或修改以下配置:
    client_max_body_size 60M; # 设置成比你的包大的值,比如60MB足够覆盖需求
    
  • 重启Nginx服务或者整个OpenWhisk集群:
    # 仅重启Nginx
    docker-compose restart nginx
    # 或者重启整个集群
    ./wskdev restart
    

2. 确认OpenWhisk自身的Action大小限制(可选)

OpenWhisk的Controller组件默认允许最大50MB的Action包,这个值一般不需要调整,但如果你之前修改过配置,可以检查一下:

  • 找到Controller的配置文件(比如controller.conf),查看action.maxByteSize参数,默认值是52428800(即50MB)
  • 如果需要更大的限制,修改为你需要的值(比如104857600对应100MB),然后重启Controller服务:
    docker-compose restart controller
    

3. 验证修改效果

重新执行你的创建Action命令:

wsk -i action create test --kind nodejs:6 test.zip -v

如果还是遇到问题,可以查看Nginx的日志排查具体错误:

docker-compose logs nginx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:39:45