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

Thin server QUERY_STRING is longer than the (1024 * 10) allowed length

如何使用 Rails 中的 thinpumaunicorn Web 服务器增加 QUERY_STRING 的最大允许值?我正在尝试向我的 Rails API 发出超过限制的 POST 请求,只需要增加服务器的最大阈值

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

我只在另一个地方 () 遇到过这个问题,我不太明白答案(具体来说,在那个答案中在哪里可以找到要编辑的 C 文件?)

有问题的文件在 gem 源代码中的 /ext/thin_parser/thin.c 中。要进行您想要的更改,我相信最简单的方法是在 Github 上分叉此 gem,在您的分叉中发布您的更改,然后使用 git: 选项捆绑您的版本宝石文件。喜欢:

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

你会在类似 ~/.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 中的新文件替换之前的 thin_parser.so /gems/thin-1.6.4/lib(好像 Makefile 没有自己做)

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

我就是这么弄的,希望对你有帮助