2015-02-01 13 views
14

ich Zugang versuche in nginx eingesetzt kibana Anwendung, aber unterworker_connections sind nicht genug

URL bekommen: - 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 bei /var/www/kibana-3.1.2 eingesetzt wird

Ich habe versucht, das zu erhöhen worker_connections, aber immer noch kein Glück, in diesem Fall unter.

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; 
} 

Und unten in der Lage Richtlinie.

+1

nicht genug Details, nginx -v bitte – Anatoly

Antwort

18

Nicht ganz genug Informationen definitiv zu sagen, aber basierend auf der Konfiguration, die Sie zur Verfügung gestellt haben, sieht es aus wie Sie Schleife haben. Sie leiten die Anfragen an localhost: 80 weiter, aber NGINX hört am Port 80 am wahrscheinlichsten zu. Deshalb verbindet sich NGINX immer wieder mit sich selbst, daher die Fehler über zu viele geöffnete Dateien.

Außerdem hat Kibana keinen serverseitigen Code, daher ist proxy_pass hier nicht geeignet. So etwas wie die folgenden soll genug sein:

root /var/www/ 
location /kibana-3.1.2 { 
    try_files $uri $uri/ =404; 
} 

Damit wird gesagt, wenn Sie beabsichtigen, diese aus dem öffentlichen Internet zugänglich zu sein, können Sie es mit einem Passwort schützen sollen und Sie sollten proxy_pass vor Elasticsearch verwenden, um kontrollieren, welche Anfragen an sie gestellt werden können. Aber das ist eine andere Geschichte :)

+0

Danke für Ihren Kommentar, ja du hast recht, es gibt keine Notwendigkeit here.So jetzt proxy_pass i habe nur root/var/www /; Inside location directive und es funktioniert – RE350

+0

Das hat mir sehr geholfen, obwohl es wirklich offensichtlich ist –

18

Alte Frage, aber ich hatte das gleiche Problem und die akzeptierte Antwort funktionierte nicht für mich.

Ich musste die Anzahl der worker_connections erhöhen, wie angegeben here.

/etc/nginx/nginx.conf

events { 
    worker_connections 20000; 
} 
+3

Warum würde jemand, fast ein Jahr später, eine funktionierende Lösung ablehnen? – RASG

Verwandte Themen