worker_connections zijn niet genoeg

Ik probeer toegang te krijgen tot de kibana-toepassing die is geïmplementeerd in nginx, maar kom onder

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 wordt ingezet op /var/www/kibana-3.1.2

Ik heb geprobeerd de worker_connectionste vergroten, maar nog steeds geen succes, in dit geval kom ik eronder.

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

En hieronder in de locatierichtlijn.

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

Antwoord 1, autoriteit 100%

Oude vraag, maar ik had hetzelfde probleem en het geaccepteerde antwoord werkte niet voor mij.

Ik moest het aantal worker_connectionsverhogen, zoals hier.

/etc/nginx/nginx.conf

events {
    worker_connections 20000;
}

Antwoord 2, autoriteit 42%

Niet genoeg informatie om definitief te zeggen, maar op basis van de configuratie die je hebt opgegeven, lijkt het alsof je een lus hebt. Je proxyt de verzoeken naar localhost:80, maar NGINX luistert hoogstwaarschijnlijk op poort 80. Dus, NGINX maakt steeds opnieuw verbinding met zichzelf, vandaar de fouten over te veel open bestanden.

Kibana heeft ook geen server-side code, dus proxy_pass is hier niet van toepassing. Iets als het volgende zou voldoende moeten zijn:

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

Dat gezegd hebbende, als je van plan bent om dit toegankelijk te maken vanaf het openbare internet, moet je het beschermen met een wachtwoord en moet je proxy_pass gebruiken voor elasticsearch om te bepalen welke verzoeken eraan kunnen worden gedaan. Maar dat is een ander verhaal 🙂

Other episodes