kibana
にデプロイされたnginx
アプリケーションにアクセスしようとしていますが、以下にアクセスしています
URL:-http://127.0.0.1/kibana-3.1.2
2015/02/01 23:05:05 [alert] 3919#0: *766 768 worker_connections are not enough while connecting to upstream, client: 127.0.0.1, server: , request: "GET /kibana-3.1.2 HTTP/1.0", upstream: "http://127.0.0.1:80/kibana-3.1.2", Host: "127.0.0.1"
Kibanaは/var/www/kibana-3.1.2
に展開されています
私はworker_connections
を増やしようとしましたが、まだ運がありません。この場合は以下になります。
2015/02/01 23:02:27 [alert] 3802#0: accept4() failed (24: Too many open files)
2015/02/01 23:02:27 [alert] 3802#0: accept4() failed (24: Too many open files)
2015/02/01 23:02:27 [alert] 3802#0: accept4() failed (24: Too many open files)
2015/02/01 23:02:27 [alert] 3802#0: accept4() failed (24: Too many open files)
2015/02/01 23:02:27 [alert] 3802#0: accept4() failed (24: Too many open files)
nginx.conf:-
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
そして、以下の場所ディレクティブ。
location /kibana-3.1.2{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $Host;
proxy_pass http://127.0.0.1;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
}
明確に言うのに十分な情報ではありませんが、提供した構成に基づいて、ループがあるように見えます。リクエストをlocalhost:80にプロキシしていますが、NGINXはおそらくポート80でリッスンしています。そのため、NGINXは何度も自分自身に接続しているため、開いているファイルが多すぎるというエラーが発生します。
また、Kibanaにはサーバー側のコードがないため、ここではproxy_passは適切ではありません。次のようなもので十分です。
root /var/www/
location /kibana-3.1.2 {
try_files $uri $uri/ =404;
}
そうは言っても、これをパブリックインターネットからアクセスできるようにする場合は、パスワードで保護し、elasticsearchの前でproxy_passを使用して、要求を制御する必要があります。しかし、それは別の話です:)
古い質問ですが、私は同じ問題を抱えており、受け入れられた答えは私にはうまくいきませんでした。
ここ のように、 worker_connections の数を増やす必要がありました。
/ etc/nginx/nginx.conf
events {
worker_connections 20000;
}