寻找扩展Eclipse Che (云IDE),我正在实施一个Che Farm 。 总之,一组反向代理背后的Eclipse Che实例。
好的,我正在使用Nginx在使用Amazon Linux AMI的EC2实例上实现反向代理,但是我发现这个问题:Eclipse Che需要为客户端打开端口8080,其工作空间的范围是32768-65535(更多信息,请点击这里 ) 。
所以,我修改了nginx.conf
文件,如下所示:
server { listen 32768; listen 32769; listen 32770; listen 32771; [...] listen 65534; listen 65535; server_name http://eclipse.company.cxx; location / { proxy_pass http://eclipse.company.local:$server_port; } }
重新启动nginx之后,我收到了这个消息:
$ sudo service nginx restart nginx: [emerg] socket() 0.0.0.0:33786 failed (24: Too many open files) nginx: configuration file /etc/nginx/nginx.conf test failed
两个问题,请:
不知道你的环境,就像一个提示:这台机器是否可以公开访问? 如果是,请执行authentication/授权,或使用VPN。
如果这是有效的,我怎样才能修复错误“太多打开的文件”?
很可能,因为它正在监听那么多的端口,所以你的nginx
运行的限制,特别是那些处理文件描述符的限制,它是一个抽象的指标(句柄),用于访问文件或其他input/输出资源,如pipe道或networking套接字[…]“。
调整这些限制:
nginx
指令worker_rlimit_nofile 。 如果这还不够:
/proc/sys/file-max
的系统范围限制。 要修改它,请运行sysctl -w fs.file-max=${your-new-limit}
。 为了使其在重新启动时保持不变,请编辑/etc/sysctl.conf
。 更改存储在/etc/security/limits.conf
的用户限制:在那里,例如input两行:
nginx soft nofile ${your-new-soft-limit} nginx hard nofile ${your-new-hard-limit}