nginx

Модуль ngx_http_memcached_module


english
русский

简体中文
עברית
日本語
türkçe

новости [en]
об nginx
скачать
безопасность [en]
pgp ключи [en]
документация
faq
ссылки [en]
книги [en]
поддержка
пожертвования [en]

trac
wiki
twitter
nginx.com
Пример конфигурации
Директивы
     memcached_bind
     memcached_buffer_size
     memcached_connect_timeout
     memcached_gzip_flag
     memcached_next_upstream
     memcached_pass
     memcached_read_timeout
     memcached_send_timeout

Модуль 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, позволяя системе самостоятельно выбирать локальный адрес.

синтаксис: 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
запрещает передачу запроса следующему серверу.

Необходимо понимать, что передача запроса следующему серверу возможна только при условии, что клиенту ещё ничего не передавалось. То есть, если ошибка или таймаут возникли в середине передачи ответа, то исправить это уже невозможно.

синтаксис: 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 не примет новых данных, соединение закрывается.