2

我正在注册一个在运行列表中搜索其他节点属性的节点。问题是当节点信息太大而无法通过 HTTP 放在服务器上时。

然后 chef-client 打印一个 'FATAL: Net::HTTPServerException: 413 "Request Entity Too Large"' 消息。

服务器位于 Opscode Hosted Chef 中。

任何人都可以帮助我解决这个问题吗?

谢谢!!

4

4 回答 4

1

更改 nginx 配置对我不起作用。但是,我确实从 Chef 社区网站 IRC 日志(由 Joshua Timberman 提供)中找到了以下内容,它对我有用(Chef v11.4.4):

 put this in /etc/chef/client.rb: Ohai::Config[:disabled_plugins] = ["passwd"]

这是链接:http: //community.opscode.com/chat/chef/2013-02-07

由于这是客户端,因此无论您使用的是什么厨师服务器类型,它都应该可以工作。

注意:在处理产生错误的食谱时,我在测试(厨师 v11.10.4)中没有看到这一点。这可能已在更新的 Chef 版本中得到修复。

于 2014-03-26T22:20:09.147 回答
1

这与 http 服务器的上传大小限制有关。我之前听说有人在 Hosted Chef 上遇到过这个问题,我自己也曾在 OpenSource Chef 上经历过。然而,在 OpenSource Chef 上,我有能力做一些事情来增加限制。

并不是说这一定会帮助您使用 Hosted Chef,但我的 nginx.conf 需要我在 http 部分添加这一行:

client_max_body_size 2M;

这在我重新加载 nginx 并为我解决问题后提高了限制。

(在 Apache 上,我相信这将是 .htaccess 或 httpd.conf 文件中的 LimitRequestBody 属性)

至于您的问题,我听到人们尝试的建议是减小节点信息的大小。在某些情况下这并不容易,但据说一些 OHAI 插件会导致这种情况发生,删除它们可以解决它。

我不知道这是否会对您的情况有很大帮助,但也许它会帮助遇到这种情况的使用 OpenSource Chef 的人。

祝你好运!

于 2012-10-22T22:00:22.757 回答
1

我也遇到了这个问题。似乎我们的客户正在将 1.17meg 发送回厨师服务器。这些答案很好,但他们并没有真正说明如何诊断问题,因为您会发现自己处于这种情况有多种原因。

1)我的服务器发回多少。

要查找此信息,您需要在调试模式下运行厨师运行。这使您可以访问从客户端发出的 HTTP 消息和响应消息。chef-client -r'recipe[run_awesome_resources]' --log_level 调试

方便的提示可以使用搜索词http 1.1 413搜索消息

2)我把这些设置放在哪里?

这些设置位于 chef 配置文件中。你很少接触这个文件,以至于你忘记了它的位置是可以原谅的。

/etc/opscode/chef-server.rb

您将需要运行重新配置命令来让厨师服务器进行设置。chef-server-ctl 重新配置

3) 我必须更改什么设置?

此链接提供了您可以使用的所有设置。

https://docs.chef.io/config_rb_server_optional_settings.html

这个问题的一个是:opscode_erchef['max_request_size']

像这样在文件中

opscode_erchef['max_request_size'] = 3000000 # 产生 3 兆位的头部空间。

一些答案表明您应该删除一些 Ohia 插件。这有效,但不是问题的根源。通过删除插件,您实际上减少了对厨师服务器的请求大小。结果是它可以工作,但是可能会误导您将插件归咎于问题的根本原因。

于 2017-10-31T14:37:36.060 回答
0

2019 年的另一个更新。

如果运行chef-client抛出错误HTTPServerException: 413 "Request Entity Too Large"检查:

  • 该选项ohai.disabled_plugins = [:Passwd]存在于/etc/chef/client.rb服务器上
  • 该选项ohai.disabled_plugins = [:Passwd]存在于/etc/chef/client.rb引发错误的客户端上
于 2019-10-01T14:40:42.430 回答