如何使用Rails中的QUERY_STRING
,thin
或puma
网络服务器增加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文件?)
答案 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>'