json-var: Модуль JSON переменных NGINX
Установка Debian/Ubuntu
Эти документы применимы к пакету APT nginx-module-json-var, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-json-var
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия | Компонент | Архитектуры |
|-------------|-------------------|-------------|-----------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| debian | trixie | main | amd64, arm64 |
| debian | trixie-mainline | main | amd64, arm64 |
| ubuntu | focal | main | amd64, arm64 |
| ubuntu | focal-mainline | main | amd64, arm64 |
| ubuntu | jammy | main | amd64, arm64 |
| ubuntu | jammy-mainline | main | amd64, arm64 |
| ubuntu | noble | main | amd64, arm64 |
| ubuntu | noble-mainline | main | amd64, arm64 |
Конфигурация
json_var
- синтаксис:
json_var $variable { ... } - по умолчанию:
none - контекст:
http
Создает новую переменную, значение которой является json, содержащим элементы, перечисленные в блоке.
Параметры внутри блока json_var указывают поле, которое должно быть включено в результирующий json.
Каждый параметр должен содержать два аргумента - ключ и значение.
Значение может содержать переменные nginx.
Пример конфигурации
http {
json_var $output {
timestamp $time_local;
remoteAddr $remote_addr;
xForwardedFor $http_x_forwarded_for;
userAgent $http_user_agent;
params $args;
}
server {
location /get_json/ {
return 200 $output;
}
}
http://domain/get_json/?key1=value1&key2=value2 может вернуть json, подобный этому:
{
"timestamp": "21/Jul/2017:12:44:18 -0400",
"remoteAddr": "127.0.0.1",
"xForwardedFor": "",
"userAgent": "curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3",
"params": "key1=value1&key2=value2"
}