我正在尝试访问部署在nginx
中的kibana
应用程序,但得到以下
网址:-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 *;
}
型
4条答案
按热度按时间qyuhtwio1#
老问题,但我有同样的问题,接受的答案不适合我。
我不得不增加worker_connections的数量,正如这里所说的。
*/etc/nginx/nginx.conf
字符串
slsn1g292#
没有足够的信息来明确地说,但根据你提供的配置,看起来你有循环。您将请求代理到localhost:80,但NGINX很可能监听端口80。因此,NGINX一遍又一遍地连接到自己,因此出现了关于打开的文件太多的错误。
另外,Kibana没有任何服务器端代码,所以proxy_pass在这里不合适。以下内容应该足够了:
字符串
话虽如此,如果你想让它从公共互联网访问,你应该用密码保护它,你应该在elasticsearch前面使用proxy_pass来控制可以向它发出什么请求。这是一个不同的故事:)
9ceoxa923#
将工作者连接设置为更高的限制对我有帮助。只是为了补充@RASG,我来到这里是因为使用了Apaches负载测试工具ab,并开始看到SSL握手失败,使用了500批。在查看NGINX日志时,我注意到类似于OP的错误,
...not enough worker_connections
。请记住,更多的工作人员意味着更多的负载在服务器上,所以即使我停止了错误消息的发生,增加计数后,网站是极端停滞不前。因此,如何找到最佳位置取决于您的服务器条件。我将明确地添加一个CPU(或新的服务器示例)。运行htop
(我在Debian/Ubuntu上)是我如何监控服务器如何“调整”以适应工作人员的增加的。如这里所提到的https://ubiq.co/tech-blog/how-to-fix-nginx-worker-connections-are-not-enough/请注意,工作进程的数量受服务器上可用内存量的限制。此外,随着工作者数量的增加,NGINX服务器的内存消耗也会增加。
在我的情况下,RAM几乎没有移动,但CPU的使用率是极端的(运行htop后)
3wabscal4#
如果你在Docker容器上运行这个,并连接到一个php容器,在你的nginx配置或网站配置中将
fastcgi_pass 127.0.0.1:9000;
更改为fastcgi_pass php:9000;
这是因为nginx指向localhost并认为它是同一个容器,而不是路由到另一个容器。