2015-10-14 81 views
2

如何在Rails中使用thin,pumaunicorn網絡服務器增加QUERY_STRING的最大允許值?我試圖做一個POST請求我的Rails API超過極限,只需要增加服務器的最大閾值瘦服務器QUERY_STRING比(1024 * 10)允許的長度長

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

我只能在另外一個橫跨這個問題就來了(HTTP query string length with thin web server),我不太明白答案(具體來說,在那個答案找到C文件編輯?)

回答

4

你會發現thin.c在類似〜/ .rvm /寶石/紅寶石2.2.0 /寶石/淡1.6.4/EXT/thin_parser

你會要改變

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

在你只需要使用Makefile重新加載thin_parser.so,並通過在〜/ .rvm /寶石/ ruby​​-新的一個來代替以前的thin_parser.so此相同的文件夾2.2.0/gems/thin-1.6.4/lib(看起來像Makefile不是自己做的)

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

我只是讓它這樣工作,希望它有幫助

1

有問題的文件是在/ext/thin_parser/thin.c內的寶石源代碼。爲了做出所需的更改,我相信最簡單的方法是在Github上分發這些寶石,在叉中發佈更改,然後使用Gemfile中的git:選項打包您的版本。像:

gem 'thin', git: '<URL to your fork>', branch: '<branch of fork to use>' 
相關問題