postgres_set

Директива `postgres_set` позволяет задавать переменные PostgreSQL в конфигурации NGINX.

Синтаксисpostgres_set name value | name value1 value2;
По умолчаниюnone
Контекстhttp, server, location
Аргументы3

Описание

Директива postgres_set используется в модуле PostgreSQL для NGINX, чтобы определять переменные, которые могут использоваться в последующих запросах или командах. Эта директива может принимать два или три аргумента, обычно в формате name value или name value1 value2, которые соответствуют имени переменной и её значению. Эти переменные могут применяться для динамического изменения SQL-запросов или выполнения условной логики на основе их содержимого.

Эта директива особенно полезна в сценариях, когда нужно передать переменные данные от уровня NGINX к вашим запросам PostgreSQL, например ввод пользователя или данные сессии. Вы можете задавать несколько переменных, что позволяет строить сложные запросы или обеспечивать динамическое поведение в зависимости от параметров входящего запроса. Эффективная область действия этой директивы включает контексты http, server и location, что даёт гибкость в том, как и где использовать эти переменные в конфигурации NGINX.

Однако важно убедиться, что устанавливаемые значения не конфликтуют с зарезервированными именами переменных или существующими конфигурациями, чтобы избежать непредвиденного поведения. Понимание безопасного использования имен переменных и соблюдение соглашений об именовании помогает снизить вероятность возникающих в результате коллизий имён переменных проблем.

Пример конфига

location /example {
    postgres_set my_var 'example_value';
    postgres_query SELECT * FROM my_table WHERE column = my_var;
}

Убедитесь, что имена переменных не конфликтуют с существующими переменными NGINX.

Использование динамических значений без надлежащей очистки может привести к уязвимостям SQL injection.

Чрезмерное использование переменных может привести к путанице и затруднить сопровождение конфигураций.

← Ко всем директивам