worker_connections是不够的

我正在尝试访问nginx部署的kibana应用程序,但下面

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