Персональный
сайт
Игоря
Сысоева


 
english
 
sysoev.ru
 
nginx
 поехали!    
 документация    
 поддержка    
 изменения    
 скачать    
 ссылки    
 
mod_accel
mod_realip
mod_deflate
программирование
всякая всячина
windows
freebsd
apache
pppd
unix
web
 
обо мне
для писем
для денег
 

Директивы модуля ngx_http_memcached_module

 

27.12.2007

Модуль ngx_http_memcached_module позволяет получать ответ из сервера memcached. Ключ задаётся в переменной $memcached_key. Ответ в memcached должен быть предварительно помещён внешним по отношению к nginx'у способом.

Содержание

Пример конфигурации
Директивы
memcached_buffer_size
memcached_connect_timeout
memcached_next_upstream
memcached_pass
memcached_read_timeout
memcached_send_timeout

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

server {
    location / {
        set             $memcached_key   "$uri?$args";
        memcached_pass  host:11211;
        error_page      404 502 504 = @fallback;
    }

    location @fallback {
        proxy_pass      http://backend;
    }
}

Директивы


syntax: memcached_buffer_size размер
default: memcached_buffer_size 4k/8k
context: http, server, location

Директива задаёт размер буфера, в который будет читаться ответ, получаемый от cервера memcached. Ответ синхронно передаётся клиенту сразу же по мере его поступления.


syntax: memcached_connect_timeout время
default: memcached_connect_timeout 60
context: http, server, location

Директива задаёт таймаут для соединения с cервером memcached. Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд.


syntax: memcached_next_upstream [error|timeout|invalid_response|not_found|off]
default: memcached_next_upstream error timeout
context: http, server, location

Директива определяет, в каких случаях запрос будет передан следующему серверу memcached:

  • error — произшла ошибка соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера;
  • timeout — произошёл таймаут во время соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера;
  • invalid_response — сервер вернул пустой или неверный ответ;
  • not_found — сервер не нашёл ответ;
  • off — запрещает передачу запроса следующему серверу;

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


syntax: memcached_pass URL
default: нет
context: location, if в location, limit_except

Директива задаёт адрес сервера memcached. Адрес может быть указан в виде доменного имени или адреса и порта:

    memcached_pass   localhost:11211;

Если доменное имя резолвится в несколько адресов, то все они будут использоваться в режиме round-robin. И кроме того, адрес может быть группой серверов.


syntax: memcached_read_timeout время
default: memcached_read_timeout 60
context: http, server, location

Директива задаёт таймаут при чтении ответа сервера memcached. Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени сервер ничего не передаст, то nginx закрывает соединение.


syntax: memcached_send_timeout время
default: memcached_send_timeout 60
context: http, server, location

Директива задаёт таймаут при передаче запроса серверу memcached. Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. Если по истечении этого времени сервер не примет новых данных, то nginx закрывает соединение.


(C) Игорь Сысоев
http://sysoev.ru