1、 2017-11-8,服务器后台报错,too many open file。
服务器为redhat6.8,tomcat为6.0.53.
根据当前问题,网上搜索解决方案:
首先查看系统当前最大句柄数:ulimit -n
默认是1024,这个数字对于J2EE的程序来说是不够用的,因为这是典型的单进程大并发的应用,比如数据库等也是同样的道理。
然后查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
显示数据为第一列是打开的句柄数,第二列是进程号,按照句柄数的多少倒叙排列。
然后可以评估我们需要修改的句柄数。
比如执行ulimit -HSn 4096
就将该数据修改为4096了
为了对所有用户和主机本身进行修改数据,执行以下:
vi /etc/security/limits.conf
在末尾加上
* soft nofile 4096
* hard nofile 4096
释义:前面的*代表所有用户 soft/hard代表两种模式,一种是软模式,即超过之后进行警告,一种是硬模式,超过既定数量,直接拒绝或抛出异常。数字代表设定的句柄阈值。
具体修改的数字不是越大越好,一般来讲
soft limit < hard limit < kernel < 实现最大file descriptor数采用的数据结构所导致的限制
可以通过我们上面的lsof那一行命令来进行评估。
2、关于https在nginx免费自签名实现
自签名支持IP和域名访问,安装受信任证书后可现实为绿色。
环境:centos7
工具:xca、nginx
下载并安装xca和nginx,这部分网上有很多教程,在此省略不述。
xca下载地址:https://www.hohnstaedt.de/xca/
nginx安装过程可参见:https://blog.csdn.net/sesrry/article/details/78486886
配置过程:
打开xca,file-->new Database,输入文件名和密码,确认密码,点击OK
点击Certificate Signing Request分页,点击new request:
“Source” 标签页保持不变,点击“Subject”标签页,输入证书的信息,比如内部名,组织名,组织单元名字,国家名,省份以及通用名字。一般内部名和通用名字填一样,而且通用名一般都需要填写,因为这个是用来标示当前证书在你的组织内部的唯一性;
信息填写完毕,点击Generate a new key,填写名称,点击Create按钮
这时我们可以在private key标签页中查看到私钥。
创建证书管理中心:
打开Certificates 标签页,点击new Certificate按钮:
按图中进行选择,并点击apply all按钮!并点击apply all按钮!并点击apply all按钮!(重要的事情说3遍)
然后点击Subject标签,根据之前步骤填写,Inernal Name和commonName区分开来即可,填写完毕后点击Generate a new key,填写名称,点击Create按钮。
点击Exstensions标签页,type选择Certification Authority,其他填写如下:
其中时间代表证书有效期。
签名:
点击“Certificate Signing Requests”标签,可查看到之前配置的未签名请求:
右键点击该request,点击sign,
按图中所示,最后点击OK,该请求签名完成。
导出:
在证书页面,选择对应的证书进行导出,导出为.crt文件。
在private keys 标签页面,选择对应的私钥,导出pem格式文件,修改后缀名为.key。
nginx配置:
nginx reload即可使用https访问。
导出根证书crt格式,双击进行安装,安装为受信任的证书,再次访问即可看到
图中的绿色锁标识。
时间欠缺,包含之前累积的一些东西,预计在10月进行编辑,特此标记。