如何解决WSO2 API 管理器 ApiCtl 请求实体太大
我们使用的是 WSO2 Api Manager v3.2.0,并希望通过相应的 apictl
命令导入 API。我们的一个 api 有一个 swagger.json
文件,文件大小约为 250kb,据我所知,这不是那么大。尝试导入此 api 时,我收到错误 413 - 请求实体太大。有趣的是,当多次触发时它会起作用。意味着 5 次或 6 次中有 1 次按预期工作。其他时候它会失败并显示 413。我们中间没有额外的代理,而是使用不安全的自签名证书与 api 管理器进行本地通信。
apictl 版本:
Version: 3.2.1
Build Date: 2020-09-29 12:55:11 UTC
apictl import-api -k -e int --update -f path/to/specs
路径/到/规格:
.
├── api_params.yml
└── Meta-information
├── api.json
└── swagger.json
到目前为止,我们尝试的是在 deployment.toml
中设置/提高额外的配置值(只有 maxHttpHeaderSize 似乎合适),如下所示:
[transport.http.properties]
maxHttpHeaderSize = 819200
[transport.https.properties]
maxHttpHeaderSize = 819200
值在 repository/conf/tomcat/catalina-server.xml
中设置正确,但导入仍然失败,代码为 413(但随机有效)。
知道要往哪个方向或要设置哪个配置变量吗?是否存在缓存问题也可能起作用?
解决方法
似乎错误“413 – 请求实体太大”表明 Nginx 服务器配置为限制大文件大小。
可以使用 client_max_body_size
指令将 Nginx 设置为允许客户端请求正文的最大大小。如果请求的大小超过了配置值,客户端返回413(Request Entity Too Large)错误
所以为了增加client_max_body_size,
-
编辑Nginx的conf文件:
nano /etc/nginx/nginx.conf
-
在 HTTP 部分添加一行:(添加预期的正文大小)
http { client_max_body_size <your_size> ; }
-
保存并重启 Nginx 服务器。
尝试上述步骤并再次尝试相同的场景以验证相同的问题是否仍然存在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。