nginx

Module ngx_http_memcached_module


english
русский

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

news
about
download
security advisories
documentation
pgp keys
faq
links
books
support
donation

trac
wiki
twitter
nginx.com
This translation may be out of date. Check the English version for recent changes.
Example Configuration
Directives
     memcached_buffer_size
     memcached_connect_timeout
     memcached_gzip_flag
     memcached_next_upstream
     memcached_pass
     memcached_read_timeout
     memcached_send_timeout

The ngx_http_memcached_module module allows to obtain responses from a memcached server. The key is set in the $memcached_key variable. A response should be put in memcached in advance via means that are external to nginx.

Example Configuration

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

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

Directives

syntax: memcached_buffer_size size;
default:
memcached_buffer_size 4k|8k;
context: http, server, location

Sets size of the buffer used for reading a response received from the memcached server. A response is passed to a client synchronously, immediately as it is received.

syntax: memcached_connect_timeout time;
default:
memcached_connect_timeout 60s;
context: http, server, location

Defines a timeout for establishing a connection with the memcached server. It should be noted that this timeout cannot usually exceed 75 seconds.

syntax: memcached_gzip_flag flag;
default:
context: http, server, location

This directive appeared in version 1.3.6.

Enables the test for the flag presence in the memcached server response and sets the request header field “Content-Encoding” to “gzip” if the flag is set.

syntax: memcached_next_upstream error | timeout | invalid_response | not_found | off ...;
default:
memcached_next_upstream error timeout;
context: http, server, location

Specifies in which cases a request should be passed to the next server:

error
an error occurred while establishing a connection with the server, passing it a request, or reading the response header;
timeout
a timeout has occurred while establishing a connection with the server, passing it a request, or reading the response header;
invalid_response
a server returned empty or invalid response;
not_found
a response was not found on the server;
off
disables passing a request to the next server.

It should be understood that passing a request to the next server is only possible if a client was not sent anything yet. That is, if an error or a timeout occurs in the middle of transferring a response, fixing this is impossible.

syntax: memcached_pass address;
default:
context: location, if in location

Sets an address of the memcached server. An address can be specified as a domain name or an address, and a port, for example,

memcached_pass localhost:11211;

If a domain name resolves to several addresses, all of them will be used in a round-robin fashion. In addition, an address can be specified as a server group.

syntax: memcached_read_timeout time;
default:
memcached_read_timeout 60s;
context: http, server, location

Defines a timeout for reading a response from the memcached server. A timeout is only set between two successive read operations, not for the transmission of the whole response. If a memcached server does not transmit anything within this time, a connection is closed.

syntax: memcached_send_timeout time;
default:
memcached_send_timeout 60s;
context: http, server, location

Sets a timeout for transmitting a request to the memcached server. A timeout is only set between two successive write operations, not for the transmission of the whole request. If a memcached server does not receive anything within this time, a connection is closed.