Как использовать nginx для проверки всего тела перед отправкой ответа на GET-запрос клиента - PullRequest
0 голосов
/ 24 января 2019

Этот вопрос относится к обработке запросов HTTP GET. Упомянутое ниже тело является телом ответа (не телом запроса).

Я ищу способ использования nginx для проверки всего тела ответа перед возвратом заголовка и ответа клиенту на основе результатов проверки.

Я исследовал фильтр подмодуля http://nginx.org/en/docs/http/ngx_http_sub_module.html,, но реализованный шаблон не может быть повторно использован для моих целей. Я также исследовал пример модуля https://www.nginx.com/resources/wiki/extending/examples/body_filter/,, но мне не удалось заставить этот модуль работать. Возвращение кода ошибки из фильтра тела слишком поздно и запрос застревает после того, как заголовок 200 уже был отправлен.

То, чего я хочу достичь, это следующее: - Удерживайте запрос клиента и выполните следующую проверку обработчика (может быть асинхронным обработчиком)

- Receive the response header (do not forward it yet) 

- Receive and inspect/parse the response body 

- Depending on the result of the inspection: pass/fail 

  + pass: 

    * send the response header to the client, 

    * send the response body buffers to the client 

  + fail: 

    * send an error code response header to the client, 

    * discard the response body buffers 

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...