memc_pass
Директива 'memc_pass' отправляет запросы на указанный сервер memcached для операций по хранению данных.
Описание
Директива 'memc_pass' используется для определения backend-сервера memcached, на который будут перенаправляться запросы. Эта директива действует в контекстах location и if внутри конфигурации NGINX, обеспечивая высокую гибкость маршрутизации запросов в зависимости от различных условий. При обработке запроса директива ожидает, что memc_key будет установлен до её вызова, чтобы идентифицировать конкретную запись кеша, к которой осуществляется доступ. В зависимости от HTTP-метода входящего запроса директива автоматически определяет соответствующую команду memcached, которая может включать 'get', 'set', 'add' или 'delete'. Это динамическое переключение важно для эффективной обработки различных операций без необходимости дополнительной конфигурации для каждой команды.
Директива принимает один аргумент — адрес сервера memcached, обычно в форме '127.0.0.1:11211'. Когда запрос достигает директивы memc_pass, устанавливается соединение с указанным сервером memcached и отправляется соответствующая команда, определённая используемым HTTP-методом. Если все условия выполнены, NGINX обрабатывает ответ от сервера memcached и либо возвращает запрошенные данные, либо сохраняет новые данные, либо выполняет удаление в соответствии с указанной командой. Дополнительно директива тесно взаимодействует с переменными, определёнными модулем 'ngx_http_memc_module', которые улучшают управление операциями кеширования и позволяют более тонко контролировать поведение кеша на основе параметров запроса.
Пример конфига
location /cache {
set $memc_key $arg_key;
memc_pass 127.0.0.1:11211;
}Убедитесь, что переменная 'memc_key' установлена соответствующим образом перед вызовом 'memc_pass', иначе запрос может завершиться неудачей.
Остерегайтесь использования 'memc_pass' с методами, которые не соответствуют ожидаемым командам memcached, например неподдерживаемыми HTTP-методами.