worker_connections是不够的

RE3*_*350 26 nginx kibana

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

网址: - 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"
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

nginx.conf: -

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}
Run Code Online (Sandbox Code Playgroud)

以及位置指令中的下方.

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 *;
       }
Run Code Online (Sandbox Code Playgroud)

RAS*_*ASG 51

老问题,但我有同样的问题,接受的答案对我没有用.

我不得不增加的数量worker_connections,如前所述这里.

/etc/nginx/nginx.conf

events {
    worker_connections 20000;
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么有人会在近一年后推出一个有效的解决方案呢? (10认同)
  • 不是我,但是盲目地增加您的工作人员数量很可能只会由于内存不足而导致服务器不稳定,而无法解决基础问题 (7认同)
  • 这绝对不是解决问题的办法。临时解决办法,但不是解决方案。我遇到了同样的问题,我有 4 个配置完全相同的环境,其中一个环境出现了这个问题... (2认同)

小智 26

没有足够的信息可以肯定地说,但根据你提供的配置,它看起来像你有循环.你将请求代理到localhost:80,但是NGINX很可能正在侦听端口80.所以,NGINX一遍又一遍地连接自己,因此有太多打开文件的错误.

此外,Kibana没有任何服务器端代码,因此这里不适合使用proxy_pass.以下内容应该足够了:

root /var/www/
location /kibana-3.1.2 {
    try_files $uri $uri/ =404;
}
Run Code Online (Sandbox Code Playgroud)

话虽如此,如果您打算从公共互联网访问它,您应该使用密码保护它,并且您应该在elasticsearch前使用proxy_pass来控制可以对其发出的请求.但那是一个不同的故事:)