Memcached#
O módulo é usado para obter respostas de um servidor memcached. A chave é definida na variável $memcached_key. Uma resposta deve ser colocada no memcached antecipadamente por meios externos ao Angie.
Ao compilar a partir do código-fonte, o módulo é
compilado por padrão; ele pode ser desabilitado com a opção de
compilação --without-http_memcached_module.
Em pacotes e imagens de nossos repositórios, o
módulo está incluído na compilação. Faz com que as conexões de saída para um servidor memcached se originem do endereço IP local especificado com uma porta opcional. O valor do parâmetro pode conter variáveis. O valor especial Por padrão, esse valor é avaliado uma única vez, na inicialização da requisição,
antes da seleção de um servidor memcached. No Angie PRO, a avaliação ocorre após cada
seleção de servidor memcached (incluindo novas tentativas), de modo que o endereço de
vinculação pode depender do servidor selecionado; por exemplo, por meio da variável
O parâmetro Para que este parâmetro funcione, geralmente é necessário executar os processos worker do Angie com privilégios de superusuário. No Linux isso não é necessário, pois se o parâmetro Nota É necessário configurar a tabela de roteamento do kernel para interceptar o tráfego de rede do servidor memcached. Padrão http, server, location Define o tamanho do buffer usado para ler a primeira parte da resposta recebida do servidor memcached. A resposta é passada para o cliente de forma síncrona, assim que é recebida. Padrão http, server, location Define um timeout para estabelecer uma conexão com um servidor memcached. Deve-se notar que este timeout geralmente não pode exceder 75 segundos. Nota Este timeout não rege as conexões ociosas: por quanto tempo uma conexão já
aberta é mantida para reutilização é definido por
keepalive_timeout em um bloco upstream cujas conexões são
armazenadas em cache com keepalive. Habilita o teste para a presença da flag na resposta do servidor memcached e define o campo de cabeçalho de resposta Padrão http, server, location Especifica em quais casos uma requisição deve ser passada para o próximo servidor no pool upstream: ocorreu um erro ao estabelecer uma conexão com o servidor, passar uma requisição para ele ou ler o cabeçalho da resposta; ocorreu um timeout ao estabelecer uma conexão com o servidor, passar uma requisição para ele ou ler o cabeçalho da resposta; um servidor retornou uma resposta vazia ou inválida; uma resposta não foi encontrada no servidor; desabilita passar uma requisição para o próximo servidor. Nota Deve-se ter em mente que passar uma requisição para o próximo servidor só é possível se nada foi enviado para um cliente ainda. Ou seja, se um erro ou timeout ocorre no meio da transferência de uma resposta, corrigir isso é impossível. A diretiva também define o que é considerado uma tentativa malsucedida de comunicação com um servidor. sempre consideradas tentativas malsucedidas, mesmo se não estiverem especificadas na diretiva nunca considerada uma tentativa malsucedida Passar uma requisição para o próximo servidor pode ser limitado pelo número de tentativas e por tempo. Padrão http, server, location Limita o tempo durante o qual uma requisição pode ser passada para o próximo servidor. desativa esta limitação Padrão http, server, location Limita o número de tentativas possíveis para passar uma requisição para o próximo servidor. desativa esta limitação Define o endereço do servidor memcached. O endereço pode ser especificado como um nome de domínio ou endereço IP e uma porta: ou como um caminho de socket de domínio UNIX: Se um nome de domínio resolve para vários endereços, todos eles serão usados de forma round-robin. Além disso, um endereço pode ser especificado como um grupo de servidores. Nota If Define um timeout para ler uma resposta do servidor memcached. O timeout é definido apenas entre duas operações de leitura sucessivas, não para a transmissão de toda a resposta. Se o servidor memcached não transmitir nada dentro deste tempo, a conexão é fechada. Define um timeout para transmitir uma requisição para o servidor memcached. O timeout é definido apenas entre duas operações de escrita sucessivas, não para a transmissão de toda a requisição. Se o servidor memcached não receber nada dentro deste tempo, a conexão é fechada. Padrão http, server, location Configura o comportamento "TCP keepalive" para conexões de saída para um servidor memcached. Por padrão, as configurações do sistema operacional estão em efeito para o socket. A opção de socket SO_KEEPALIVE é ativada para o socket. Define uma chave para obter uma resposta de um servidor memcached.Exemplo de configuração#
server {
location / {
set $memcached_key "$uri?$args";
memcached_pass host:11211;
error_page 404 502 504 = @fallback;
}
location @fallback {
proxy_pass http://backend;
}
}
Diretivas#
memcached_bind#
off cancela o efeito da diretiva memcached_bind herdada do nível de configuração anterior, o que permite ao sistema atribuir automaticamente o endereço IP local e a porta.$upstream_current_addr. Se o valor avaliado estiver vazio, nenhuma
vinculação é feita.transparent permite que as conexões de saída para um servidor memcached se originem de um endereço IP não local, por exemplo, de um endereço IP real de um cliente:memcached_bind $remote_addr transparent;
transparent for especificado, os processos worker herdam a capacidade CAP_NET_RAW do processo mestre.memcached_buffer_size#
memcached_buffer_size tamanho;memcached_buffer_size 4k|8k;memcached_connect_timeout#
memcached_connect_timeout tempo;memcached_connect_timeout 60s;memcached_gzip_flag#
Content-Encoding como "gzip" se a flag estiver definida.memcached_next_upstream#
memcached_next_upstream error | timeout | invalid_response | not_found | off ...;memcached_next_upstream error timeout;errortimeoutinvalid_responsenot_foundofferror, timeout, invalid_responsenot_foundmemcached_next_upstream_timeout#
memcached_next_upstream_timeout tempo;memcached_next_upstream_timeout 0;0memcached_next_upstream_tries#
memcached_next_upstream_tries number;memcached_next_upstream_tries 0;0memcached_pass#
memcached_pass localhost:11211;
memcached_pass unix:/tmp/memcached.socket;
memcached_pass is placed in a location whose prefix ends with a slash
(for example, location /name/),
and the auto_redirect directive is set to default,
requests without a trailing slash will be redirected (/name -> /name/).memcached_read_timeout#
memcached_send_timeout#
memcached_socket_keepalive#
memcached_socket_keepalive on | off;memcached_socket_keepalive off;offonVariáveis integradas#
$memcached_key#