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

У вас есть экземпляр: Nginx в DMZ с TNT_nginx_upstream_module + Tarantool Cartridge в качестве сервера API.
Когда у меня есть ответ с хорошим результатом - это 200 ОК + JSON с данными
Как установить другой ответ?

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

1 ответ

Решение

Модуль восходящего потока Tarantool Nginx был разработан для работы с JSON RPC, а не с обычным HTTP. Есть способ вернуть произвольные результаты, используя rewrite_by_lua в locationраздел. Выглядит это так:

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

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

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

Другие вопросы по тегам