centos openfile(centos kde)

centos7+tomcat登陆超时

在工作中开发找到说,项目日志访问域名报错,报错如下:

这是第二次遇到的报错,所以把它记录下来,在服务器curl是另外一种结果,服务器结果如下:

经过第一次的经验就知道,本机的jdk是不信任你这域名的,然后我将这个域名的私钥证书,就是.crt结尾的证书转换成.cer结尾的证书,进行导入到本机jdk里面就可以实现程序的信任了,好了话不多说操作如下。

1.拿到私钥证书之后,使用ie浏览器导入到浏览里面。

找到你的私钥证书

选择你的组

这就是导入成功了。

开始导出.cer结尾的证书,选择你导入证书的组然后点击导出来

选择你要导出的证书编码类型

选择要导出的位置以及导出证书的名字

导出完成。

得到了一个后缀为.cer结尾的证书。然后接下来导入到我们需要的服务器jdk中即可

2.liunx导入证书的命令为如下(本片文章jdk是以yum安装的jdk为主导入的):

(1)找打jdk安装的目录

# pwd

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/lib/securi

(2)上传要导入的证书

(3)进入jdk安装目录,然后进行导入证书

#导入证书命令

# keytool-import-trustcacerts-alias tomcat-file/home/cert/111.cer-keystore"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/lib/security/cacerts"-storepass changeit

#删除证书命令

# keytool-delete-alias server-keystore D:\jdk1.6.0\jre\lib\security\cacerts-storepass changeit

这样再用程序调用这域名就不会报超时了。

如何在 CentOS / RHEL 上设置 SSH 免密码登录

作为系统管理员,你计划在 Linux上使用 OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机 A能自动登录到主机 B。自动登录也就是说,要在 shell脚本中使用ssh,而无需要输入任何密码。

本文会告诉你怎样在 CentOS/RHEL上设置 SSH免密码登录。自动登录配置好以后,你可以通过它使用 SSH(Secure Shell)和安全复制(SCP)来移动文件。

SSH是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP协议在网络上向另一台电脑传输文件。

通过配置 SSH免密码登录,你可以享受到如下的便利:

用脚本实现日常工作的自动化。

增强 Linux服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH密钥单凭暴力破解是几乎不可攻破的。

什么是 ssh-keygen

ssh-keygen是一个用来生成、创建和管理 SSH认证用的公私钥的工具。通过 ssh-keygen命令,用户可以创建支持SSH1和 SSH2两个协议的密钥。ssh-keygen为 SSH1协议创建 RSA密钥,SSH2则可以是 RSA或 DSA。

什么是 ssh-copy-id

ssh-copy-id是用来将本地公钥拷贝到远程的 authorized_keys文件的脚本命令,它还会将身份标识文件追加到远程机器的~/.ssh/authorized_keys文件中,并给远程主机的用户主目录适当的的权限。

SSH密钥

SSH密钥为登录 Linux服务器提供了更好且安全的机制。运行 ssh-keygen后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。

在 CentOS和 RHEL上设置免密码登录 SSH

以下步骤在 CentOS 5/6/7、RHEL 5/6/7和 Oracle Linux 6/7上测试通过。

节点1: 192.168.0.9节点2: 192.168.l.10

步骤1:

测试节点1到节点2的连接和访问:

[root@node1~]# ssh root@192.168.0.10The authenticity of host'192.168.0.10(192.168.0.10)' can't be established.RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.Are you sure you want to continue connecting(yes/no)? yesWarning: Permanently added'192.168.0.10'(RSA) to the list of known hosts.root@192.168.0.10's password:Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1[root@node2~]#

步骤二:

使用 ssh-key-gen命令生成公钥和私钥,这里要注意的是可以对私钥进行加密保护以增强安全性。

[root@node1~]# ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key(/root/.ssh/id_rsa):Enter passphrase(empty for no passphrase):Enter same passphrase again:Your identification has been saved in/root/.ssh/id_rsa.Your public key has been saved in/root/.ssh/id_rsa.pub.The key fingerprint is:b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.localThe key's randomart image is:+--[ RSA 2048]----+|.++|| o o o|| o o o.||. o+..|| S..||....|| o E oo.o||= ooo.||. o.o.|+-----------------+

步骤三:

用 ssh-copy-id命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的~/.ssh/authorized_keys中:

[root@node1~]# ssh-copy-id-i~/.ssh/id_rsa.pub 192.168.0.10root@192.168.0.10's password:Now try logging into the machine, with"ssh'192.168.0.10'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

步骤四:

验证免密码 SSH登录节点2:

[root@node1~]# ssh root@192.168.0.10Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local

我希望这篇文章能帮助到你,为你提供 SSH免密码登录 CentOS/ RHEL的基本认知和快速指南。

too many open files这种错误应该怎么解决

Tomcat Too Many Open Files;Too many open files tomcat 6.0报“too many open files Too many open files问题的解决 linux故障解决,tomcat故障处理,too many open files故障处理

发表于 2011年 01月 06日由 admin

Tomcat Too Many Open Files;Too many open files tomcat 6.0报“too many open files Too many open files问题的解决

linux故障解决,tomcat故障处理,too many open files故障处理这个问题是第一次在Linux环境下碰到,把解决的方法记录下来。

服务器配置:两个双核CPU 2.0G,4G内存

操作系统:CentOS,内核2.6.18

应用1、搜索服务器,负责全站的搜索和提供内容相关性接口

应用服务器:Tomcat6.0.16+Apache2.2.8,其中两个Tomcat实例,一个对外提供服务,一个对内管理索引(创建、删除、检索等)

Web方案:Solr1.3(With Solr Client For Java)、Java Servlet(Web Service接口)

应用2、类似于百度知道的一个应用

应用服务器:与搜索服务器共享Apache2.2.8

Web方案:Php+Mysql

问题症状:搜索服务停止,应用2响应超时,牵连全站的搜索接口调用内容的输出,查看Catalina日志,大量的如下信息:

<!--[if!supportLineBreakNewLine]-->

Java代码

org.apache.jk.common.ChannelSocket acceptConnections

WARNING: Exception executing accept

java.net.SocketException: Too many open files

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(Unknown Source)

at java.net.ServerSocket.implAccept(Unknown Source)

at java.net.ServerSocket.accept(Unknown Source)

at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:295)

at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:641)

at org.apache.jk.common.SocketAcceptor.runIt(ChannelSocket.java:852)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Unknown Source)

org.apache.jk.common.ChannelSocket acceptConnections

WARNING: Exception executing accept

java.net.SocketException: Too many open files

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(Unknown Source)

at java.net.ServerSocket.implAccept(Unknown Source)

at java.net.ServerSocket.accept(Unknown Source)

at org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:295)

at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:641)

at org.apache.jk.common.SocketAcceptor.runIt(ChannelSocket.java:852)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

at java.lang.Thread.run(Unknown Source)

<!--[endif]-->事件的主题:linux系统出现Too many open files错误,这是因为文件描述符大小不够,或者有不正常的网络连接(Socket也是一种特殊的文件)、文件IO没有关闭并释放出文件描述符(文件句柄,File Operator)。

使用如下命令查看系统对允许打开最大文件描述符的配置:

ulimit-u查看open files设置

ulimit-a查看所有设置

ulimit-u 65535(新的open files值)修改设置

ulimit-n 65536设置用户可以同时打开的最大文件数(max open files)

如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误

使用lsof-p pid [httpd进程的 pid、java的pid]来查看系统中apache进程和java运行时进程当前打开的文件资源,发现两者之和已经接近1024,大于了默认的设置。

修改配置:

修改/etc/security/limits.conf,在文件末加上

* soft nofile 65536

* hard nofile 65536

系统级文件描述符极限还可以通过将以下三行添加到/etc/rc.d/rc.local启动脚本中来设置:

# Increase system-wide file descriptor limit.

echo 65536>/proc/sys/fs/file-max

echo 65536>/proc/sys/fs/inode-max

思考:虽然调整该参数解决了当前的问题,但并不是最好的方法,出现该错误说明该服务器承载了一定的并发连接,尤其是搜索服务,其中一个实例对外提供搜索,另一个实例创建索引,两个实例之间也使用socket进行通信(httpclient for java),创建索引的时候会占用大量的文件描述符,如果描述符没有及时释放(不能完全依赖垃圾回收机制,要及时的close);全站的所有与搜索有关的接口调用都会向其发出请求,而应用2也对外服务不少的请求,较好的办法是将搜索服务从该服务器中分离出来,这样可以分别对两者进行优化(包括调整 Linux系统参数,比如:/etc/sysctl.conf中对net.ipv4的优化),出了问题也容易debug

阅读剩余
THE END