#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 поставляется на борту модуля картриджа.