J'essaie d'accéder à l'application kibana
déployée dans nginx
, mais j'obtiens ci-dessous
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 est déployé à /var/www/kibana-3.1.2
J'ai essayé d'augmenter le worker_connections
, mais toujours pas de chance, en dessous dans ce cas.
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;
}
Et ci-dessous dans la directive de localisation.
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 *;
}
Pas assez d'informations pour dire définitivement, mais d'après la configuration que vous avez fournie, il semble que vous ayez une boucle. Vous envoyez des requêtes par proxy à localhost: 80, mais NGINX écoute très probablement sur le port 80. Ainsi, NGINX se connecte à lui-même encore et encore, d'où les erreurs concernant trop de fichiers ouverts.
De plus, Kibana n'a pas de code côté serveur, donc proxy_pass n'est pas approprié ici. Quelque chose comme ce qui suit devrait suffire:
root /var/www/
location /kibana-3.1.2 {
try_files $uri $uri/ =404;
}
Cela étant dit, si vous souhaitez que cela soit accessible à partir d'Internet public, vous devez le protéger avec un mot de passe et vous devez utiliser proxy_pass devant elasticsearch pour contrôler les demandes qui peuvent lui être adressées. Mais c'est une autre histoire :)
Vieille question, mais j'ai eu le même problème et la réponse acceptée n'a pas fonctionné pour moi.
J'ai dû augmenter le nombre de worker_connections , comme indiqué ici .
/etc/nginx/nginx.conf
events {
worker_connections 20000;
}