Comportamento oposto do keepalive (nginx reverse proxy no ElasticSearch)

2

Estou configurando um proxy reverso nginx para ElasticSearch (com HTTP Basic Auth) como descrito neste artigo .

Este é o meu arquivo de configuração nginx:

events {
        worker_connections  1024;
}


http {
        upstream elasticsearch {
                server elasticsearch.example.org:9200;
                keepalive 64;
        }

        server {
                listen 8080;

                location / {
                        auth_basic "ElasticSearch";
                        auth_basic_user_file /var/www/.htpasswd;

                        proxy_pass http://elasticsearch.example.org:9200;
                        proxy_http_version 1.1;
                        proxy_set_header Connection "Keep-Alive";
                        proxy_set_header Proxy-Connection "Keep-Alive";
                }
        }
}

O proxy encaminha corretamente a porta 8080 para 9200 e deve manter as conexões persistentes (keep-alive) no Elasticsearch.

Este é o resultado de visitar o URL link ou link (autenticação HTTP já foi feita) em um navegador:

{
  "cluster_name" : "elasticsearch",
  "nodes" : {
    "rIFmzNwsRvGp8kipbcwajw" : {
      "timestamp" : 1455899085319,
      "name" : "Kid Colt",
      "transport_address" : "elasticsearch.example.org/10.3.3.3:9300",
      "host" : "10.3.3.3",
      "ip" : [ "elasticsearch.example.org/10.3.3.3:9300", "NONE" ],
      "http" : {
        "current_open" : 3,
        "total_opened" : 28
      }
    }
  }
}

Ao visitar a página na porta 9200 (conexão direta com o Elasticsearch) e recarregar, o campo total_opened deve aumentar, enquanto ao visitar na porta 8080 (através do proxy nginx) e recarregar, o campo não deve ser alterado.

Na verdade, acontece o oposto. Qual é a razão desse estranho comportamento?

    
por dr01 19.02.2016 / 17:49

1 resposta

2

Você definiu um contêiner upstream chamado elasticsearch . Mas você não invoca isso. Tente substituir sua diretiva proxy_pass por:

proxy_pass http://elasticsearch;

Veja este documento para detalhes.

    
por 19.02.2016 / 21:48