Модуль ngx_http_memcached_module позволяет получать
ответ из сервера memcached.
Ключ задаётся в переменной $memcached_key .
Ответ в memcached должен быть предварительно помещён внешним по отношению
к nginx’у способом.
Пример конфигурации
server {
location / {
set $memcached_key "$uri?$args";
memcached_pass host:11211;
error_page 404 502 504 = @fallback;
}
location @fallback {
proxy_pass http://backend;
}
}
Директивы
синтаксис:
|
memcached_bind адрес | off ;
|
умолчание:
|
—
|
контекст:
|
http , server , location
|
Эта директива появилась в версии 0.8.22.
Задаёт локальный IP-адрес , который будет использоваться в
исходящих соединениях с сервером memcached.
В значении параметра допустимо использование переменных (1.3.12).
Специальное значение off (1.3.12) отменяет действие
унаследованной с предыдущего уровня конфигурации
директивы memcached_bind , позволяя системе
самостоятельно выбирать локальный IP-адрес.
синтаксис:
|
memcached_buffer_size размер ;
|
умолчание:
|
memcached_buffer_size 4k|8k;
|
контекст:
|
http , server , location
|
Задаёт размер буфера, в который будет читаться ответ,
получаемый от сервера memcached.
Ответ синхронно передаётся клиенту сразу же по мере его поступления.
синтаксис:
|
memcached_connect_timeout время ;
|
умолчание:
|
memcached_connect_timeout 60s;
|
контекст:
|
http , server , location
|
Задаёт таймаут для установления соединения с сервером memcached.
Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд.
синтаксис:
|
memcached_gzip_flag флаг ;
|
умолчание:
|
—
|
контекст:
|
http , server , location
|
Эта директива появилась в версии 1.3.6.
Включает проверку указанного флага в ответе
сервера memcached и установку поля “Content-Encoding ”
заголовка ответа в “gzip ”, если этот флаг установлен.
синтаксис:
|
memcached_next_upstream
error |
timeout |
invalid_response |
not_found |
off
...;
|
умолчание:
|
memcached_next_upstream error timeout;
|
контекст:
|
http , server , location
|
Определяет, в каких случаях запрос будет передан следующему серверу:
error
- произошла ошибка соединения с сервером, передачи ему запроса или
чтения заголовка ответа сервера;
timeout
- произошёл таймаут во время соединения с сервером,
передачи ему запроса или чтения заголовка ответа сервера;
invalid_response
- сервер вернул пустой или неверный ответ;
not_found
- сервер не нашёл ответ;
off
- запрещает передачу запроса следующему серверу.
Необходимо понимать, что передача запроса следующему серверу возможна
только при условии, что клиенту ещё ничего не передавалось.
То есть, если ошибка или таймаут возникли в середине передачи ответа,
то исправить это уже невозможно.
Директива также определяет, что считается неудачной попыткой работы с
сервером.
Случаи error , timeout и
invalid_response
всегда считаются неудачными попытками, даже если они не указаны в директиве.
Случай not_found
никогда не считается неудачной попыткой.
синтаксис:
|
memcached_pass адрес ;
|
умолчание:
|
—
|
контекст:
|
location , if в location
|
Задаёт адрес сервера memcached.
Адрес может быть указан в виде доменного имени или адреса, и порта, например,
memcached_pass localhost:11211;
или в виде пути UNIX-сокета:
memcached_pass unix:/tmp/memcached.socket;
Если доменному имени соответствует несколько адресов, то все они будут
использоваться по очереди (round-robin).
И, кроме того, адрес может быть
группой серверов.
синтаксис:
|
memcached_read_timeout время ;
|
умолчание:
|
memcached_read_timeout 60s;
|
контекст:
|
http , server , location
|
Задаёт таймаут при чтении ответа сервера memcached.
Таймаут устанавливается не на всю передачу ответа,
а только между двумя операциями чтения.
Если по истечении этого времени сервер memcached ничего не передаст,
соединение закрывается.
синтаксис:
|
memcached_send_timeout время ;
|
умолчание:
|
memcached_send_timeout 60s;
|
контекст:
|
http , server , location
|
Задаёт таймаут при передаче запроса серверу memcached.
Таймаут устанавливается не на всю передачу запроса,
а только между двумя операциями записи.
Если по истечении этого времени сервер memcached не примет новых данных,
соединение закрывается.
Встроенные переменные
$memcached_key
-
Задаёт ключ для получения ответа из сервера memcached.
|