Clojure/Ring: при использовании адаптера кольцевого причала большие запросы выдают ошибку 413: FULL HEAD.

Используя адаптер Ring Jetty, если мой запрос слишком велик, я получаю ошибку 413: FULL HEAD. Я отследил его до свойства, называемого headerbuffersize, но когда я пытаюсь установить его в вызове run-jetty, я все еще получаю 413. Есть ли лучший способ управлять конфигурацией причала из Ring?

(ring/run-jetty
 (var app)
 {:port port :join? false
  :headerbuffersize 1048576})

Как правильно это сделать?

Спасибо!


person prismofeverything    schedule 14.02.2012    source источник


Ответы (1)


Я думаю, что это должно работать:

(def header-buffer-size 1048576)

(def config
  {:host  "example.com"
   :port  8080
   ; join? false ; and any other options...
   :configurator (fn [jetty]
                   (doseq [connector (.getConnectors jetty)]
                     (.setHeaderBufferSize connector
                                           header-buffer-size)))
   })
person Michał Marczyk    schedule 15.02.2012
comment
Это наверняка работает! Теперь я вижу, что со ссылкой на пристань мы можем сделать любую конфигурацию, которая нам нужна. Спасибо! - person prismofeverything; 15.02.2012
comment
Кто-то заявил, что в последних версиях причала вы должны использовать setRequestHeaderSize вместо setHeaderBufferSize. Если это так, не стесняйтесь включать эту информацию в качестве дополнения. - person stealthjong; 01.08.2014