上記のように、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;
バラよりこのファイルもっと学ぶ。