Пользовательский ответ от Tarantool Nginx

#nginx #tarantool #nginx-upstreams #tarantool-cartridge

#nginx #tarantool #nginx-восходящие потоки #tarantool-картридж

Вопрос:

Есть экземпляр: Nginx в DMZ с TNT_nginx_upstream_module картридж Tarantool в качестве сервера API.
Когда у меня есть ответ с хорошим результатом — это 200 OK JSON с данными
, как задать другой ответ?

  • 400 неверных запросов
  • 403 Запрещено
  • 404 Не найдено
  • 410 пропало
  • 500 Внутренняя ошибка сервера
  • Служба 503 недоступна

Комментарии:

1. Вопрос недостаточно ясен.

Ответ №1:

Вышестоящий модуль Tarantool Nginx был разработан для использования JSON RPC, а не общего HTTP. Существует способ возвращать произвольные результаты, используя rewrite_by_lua в location разделе. Это выглядит так:

 location /api {
  default_type application/json;
  rewrite_by_lua '
    ...
  ';
}
  

Я не вставляю здесь полный фрагмент, так как он довольно длинный. Вы можете посмотреть его здесь.

В общем, я бы также посоветовал вам не использовать упомянутый модуль upstream, если вам нужен общий HTTP API. Лучше использовать модуль HTTP-сервера, написанный на Lua, и использовать Nginx как обычный обратный прокси. В качестве бонуса, сервер Lua HTTP поставляется на борту модуля картриджа.