精简服务器QUERY_STRING比允许的(1024 * 10)长度长

时间:2015-10-14 18:13:09

标签: ruby-on-rails unicorn thin puma

如何使用Rails中的QUERY_STRINGthinpuma网络服务器增加unicorn的最大允许值?我尝试向超出限制的Rails API发出POST请求,只需要增加服务器的最大阈值

POST上的特定错误:Invalid request: HTTP element QUERY_STRING is longer than the (1024 * 10) allowed length.

我只是在另一个地方遇到过这个问题(HTTP query string length with thin web server)而且我无法理解答案(特别是,在那个答案中哪个人找到要编辑的C文件?)

2 个答案:

答案 0 :(得分:4)

你会在〜/ .rvm / gems / ruby​​-2.2.0 / gems / thin-1.6.4 / ext / thin_parser

中找到thin.c

你想要改变

DEF_MAX_LENGTH(REQUEST_URI, 1024 * 12); 
...
DEF_MAX_LENGTH(QUERY_STRING, (1024 * 10));

在同一个文件夹中你只需要使用Makefile重新加载thin_parser.so,并用〜/ .rvm / gems / ruby​​-2.2.0 / gems / thin中的新文件替换以前的thin_parser.so -1.6.4 / lib(看起来像Makefile本身没有这样做)

make clean && make && cp thin_parser.so ../../lib/

我只是按照这种方式工作,希望有所帮助

答案 1 :(得分:1)

相关文件位于gem源代码中的/ext/thin_parser/thin.c中。要进行您想要的更改,我相信最简单的方法是在Github上分配这个gem,在fork中发布您的更改,然后使用Gemfile中的git:选项捆绑您的版本。像:

gem 'thin', git: '<URL to your fork>', branch: '<branch of fork to use>'