Memcached#
Позволяет получать ответ из сервера memcached. Ключ задается в переменной $memcached_key. Ответ в memcached должен быть предварительно помещен внешним по отношению к Angie способом. Задает локальный IP-адрес с необязательным портом, который будет использоваться в исходящих соединениях с сервером memcached. В значении параметра допустимо использование переменных. Специальное значение Параметр Для работы параметра обычно требуется запустить рабочие процессы Angie с привилегиями суперпользователя. В Linux это не требуется, так как если указан параметр transparent, то рабочие процессы наследуют capability CAP_NET_RAW из главного процесса. Важно Необходимо настроить таблицу маршрутизации ядра для перехвата сетевого трафика с серверa memcached. По умолчанию http, server, location Задает размер буфера, в который будет читаться первая часть ответа, получаемого от сервера memcached. Ответ синхронно передается клиенту сразу же по мере его поступления. По умолчанию http, server, location Задает таймаут для установления соединения с сервером memcached. Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд. Включает проверку указанного флага в ответе сервера memcached и установку поля "Content-Encoding" заголовка ответа в "gzip", если этот флаг установлен. По умолчанию http, server, location Определяет, в каких случаях запрос будет передан следующему в группе upstream серверу: произошла ошибка соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера; произошел таймаут во время соединения с сервером, передачи ему запроса или чтения заголовка ответа сервера; сервер вернул пустой или неверный ответ; сервер не нашел ответ; запрещает передачу запроса следующему серверу. Примечание Необходимо понимать, что передача запроса следующему серверу возможна только при условии, что клиенту еще ничего не передавалось. То есть, если ошибка или таймаут возникли в середине передачи ответа клиенту, то действие директивы на такой запрос не распространяется. Директива также определяет, что считается неудачной попыткой работы с сервером. всегда считаются неудачными попытками, даже если они не указаны в директиве никогда не считается неудачными попытками Передача запроса следующему серверу может быть ограничена по количеству попыток и по времени. По умолчанию http, server, location Ограничивает время, в течение которого возможна передача запроса следующему серверу. отключает это ограничение По умолчанию http, server, location Ограничивает число допустимых попыток для передачи запроса следующему серверу. отключает это ограничение Задает адрес сервера memcached. Адрес может быть указан в виде доменного имени или IP-адреса, и порта: или в виде пути UNIX-сокета: Если доменному имени соответствует несколько адресов, то все они будут использоваться по очереди (round-robin). Кроме того, в качестве адреса можно указать группу серверов. По умолчанию http, server, location Задает таймаут при чтении ответа сервера memcached. Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени сервер memcached ничего не передаст, соединение закрывается. По умолчанию http, server, location Задает таймаут при передаче запроса серверу memcached. Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. Если по истечении этого времени сервер memcached не примет новых данных, соединение закрывается. По умолчанию http, server, location Конфигурирует поведение "TCP keepalive" для исходящих соединений к проксируемому серверу. По умолчанию для сокета действуют настройки операционной системы. для сокета включается параметр SO_KEEPALIVE Задает ключ для получения ответа из сервера memcached.Пример конфигурации#
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
отменяет действие унаследованной с предыдущего уровня конфигурации директивы memcached_bind, позволяя системе самостоятельно выбирать локальный IP-адрес и порт.transparent
позволяет задать нелокальный IP-aдрес, который будет использоваться в исходящих соединениях с проксируемым сервером, например, реальный IP-адрес клиента:memcached_bind $remote_addr transparent;
memcached_buffer_size#
memcached_buffer_size
размер;memcached_buffer_size 4k|8k;
memcached_connect_timeout#
memcached_connect_timeout
время;memcached_connect_timeout 60s;
memcached_gzip_flag#
memcached_next_upstream#
memcached_next_upstream
error
| timeout
| invalid_response
| not_found
| off
...;memcached_next_upstream error timeout;
error
timeout
invalid_response
not_found
off
error
timeout
invalid_response
not_found
memcached_next_upstream_timeout#
memcached_next_upstream_timeout
время;memcached_next_upstream_timeout 0;
0
memcached_next_upstream_tries#
memcached_next_upstream_tries
число;memcached_next_upstream_tries 0;
0
memcached_pass#
memcached_pass localhost:11211;
memcached_pass unix:/tmp/memcached.socket;
memcached_read_timeout#
memcached_read_timeout
время;memcached_read_timeout 60s;
memcached_send_timeout#
memcached_send_timeout
время;memcached_send_timeout 60s;
memcached_socket_keepalive#
memcached_socket_keepalive
on
| off
;memcached_socket_keepalive off;
""
on
Встроенные переменные#
$memcached_key
#