Keepaliveの反対の動作(ElasticSearchのnginxリバースプロキシ)

Keepaliveの反対の動作(ElasticSearchのnginxリバースプロキシ)

上記のように、ElasticSearchにnginxリバースプロキシ(HTTP基本認証を使用)を設定しています。本文から

これは私の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";
                }
        }
}

プロキシはポート8080を9200に正しく転送し、Elasticsearchへの接続を維持する必要があります。

URLに接続した結果です。http://elasticsearch.example.org:9200/_nodes/stats/http?prettyまたはhttp://elasticsearch.example.org:8080/_nodes/stats/http?pretty(HTTP認証が完了しました。)ブラウザで:

{
  "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
      }
    }
  }
}

このフィールドは、ページがポート9200(Elasticsearchに直接接続)からアクセスされて再ロードされるときに増加する必要がありtotal_opened、ポート8080(nginxプロキシを介して)からアクセスして再ロードしたときに変更しないでください。

実際、その逆は本当です。この奇妙な行動の理由は何ですか?

ベストアンサー1

upstreamというコンテナを定義しましたelasticsearch。しかし、あなたはそれを呼び出すことはありません。ディレクティブを次に置き換えますproxy_pass

proxy_pass http://elasticsearch;

バラよりこのファイルもっと学ぶ。

おすすめ記事