centos使用tomcat(centos安装软件命令)
老铁们,大家好,相信还有很多朋友对于centos使用tomcat和centos安装软件命令的相关问题不太懂,没关系,今天就由我来为大家分享分享centos使用tomcat以及centos安装软件命令的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
如何在CentOS上安装Tomcat
1,首先确定使用的版本,包括你的centos6.5是64位还是32位。然后到官方网站下载软件。这里以一个稳定的版本为例:当然你可以到时变更成你喜欢的。或者最新的。
Tomcat项目使用要用到JAVA,这里选择JAVA1.7,也就是通常所说的JAVA7
64位版本的 jdk-7-linux-x64.tar.gz 32位版本的 jdk-7u3-linux-i586.tar.gz,Tomcat不分位数,直接下载apache-tomcat-7.0.30.tar.gz,以上通过搜索或者官方网站下载相近的即可。
2,将这些文件解压到目录,一般来说是在/usr/local目录,命名为Java,TomcaT目录,当然具体名字你也可以定制。
3,配置环境变量,这个环境变量根据你定义的名字进行引用。保持一致即可。
下面给你一个生产环境的配置:
安装Java和Tomcat目录都是/usr/local下面,名字就是下面声明的。
将这个加到/etc/profile
source/etc/profile生效或者重启。当然其他位置环境变量你自己定。
在Tomcat1安装包里改变一些端口。如你所说的。
基本就OK。
如果有/etc/init.d下面的启动文件,要改一下配置,没有的话,直接在不同目录启动即可。
JAVA_HOME="/usr/local/java"
CLASS_PATH="/usr/local/java/lib/tool.jar:/usr/local/java/jre/lib/dt.jar"
export NGINX_HOME JAVA_HOME CLASS_PATH
CATALINA_HOME="/usr/local/tomcat"
CATALINA_BASE="/usr/local/tomcat"
export CATALINA_HOME CATALINA_BASE
CATALINA_1_HOME="/usr/local/tomcat1"
CATALINA_1_BASE="/usr/local/tomcat1"
export CATALINA_1_HOME CATALINA_1_BASE
TOMCAT_HOME="/usr/local/tomcat"
export TOMCAT_HOME
TOMCAT_1_HOME="/usr/local/tomcat1"
export TOMCAT_1_HOME
PATH=".:/usr/local/svn/bin:/usr/local/java/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:/bin:/bin:/sbin:"
4,然后将做好的项目话在Tomcat/webapps里。然后运行Tomcat即可打开。
CentOS 7 下Tomcat启动超慢的原因及解决方案
CentOS 7系统中安装好openjdk和Tomcat后,启动过程很慢,长达数分钟,日志如下:
tomcat启动耗时278084ms折合278秒,对于刚刚安装的干净tomcat,这肯定是不对劲的。
其中有一条日志引起了笔者的注意:
显然tomcat执行到这里时出问题了,google了一下,经过一番搜索明白了其中的缘由。
在tomcat官方wiki文档的 HowToFasterStartUp章节中,Entropy Source部分有一段这样的说明:
从这里我们得知Tocmat的Session ID是通过SHA1PRNG算法计算得到的,计算Session ID的时候必须有一个密钥,为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥,它强依赖于获取熵池中的随机数来进行创建。
那么什么是/dev/random?什么是熵池?
/dev/random
从维基百科得知,在UNIX操作系统(包括类UNIX系统)中,/dev/random是一个特殊的设备文件,可以用作随机数生成器或伪随机数生成器。
Linux内核中的是第一个以背景噪声产生真正的随机数产生的实现,它允许程序访问来自设备驱动程序或其它来源的背景噪声。
Linux上有两个通用的随机设备:/dev/random和/dev/urandom。其中/dev/random的随机性最好,因为它是一个阻塞的设备。而/dev/random的一个副本是/dev/urandom(“unblocked”,非阻塞的随机数生成器),它会重复使用熵池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random的。所以它可以作为生成较低强度密码的伪随机数生成器,不建议用于生成高强度长期密码。
熵池
熵池本质上是若干字节,/proc/sys/kernel/random/entropy_avail中存储了熵池现在的大小,/proc/sys/kernel/random/poolsize是熵池的最大容量,单位都是bit。如果 entropy_avail的值小于要产生的随机数bit数,那么/dev/random就会堵塞。
为什么熵池不够用?
熵池实际上是从各种noice source中获取数据,noice source可能是键盘事件、鼠标事件、设备时钟中等。linux内核从2.4升级到2.6时,处于安全性的考虑,废弃了一些source。source减少了,熵池补给的速度当然也变慢,进而不够用。
其实,通过消耗熵池,可以构造DDOS攻击。原理很简单,熵池空了,依赖随机数的业务(SSL,加密等)就不能正常进行。
通过以上信息,笔者得知该问题是由于熵池不足导致的。怎么解决?
使用非阻塞性的生成器/dev/urandom代替/dev/random。
1、可在JVM环境中配置
通过配置发生器指定熵收集守护进程
修改$JAVA_PATH/jre/lib/security/java.security中参数 securerandom.source为:
2、也可在Tomcat环境中配置
通过配置JRE使用非阻塞的Entropy Source获取熵
在$TOMCAT_HOME/bin/catalina.sh中加入:
这个系统属性egd表示熵收集守护进程(entropy gathering daemon)。
1、[硬件随机数生成器]安装并使用rng-tools作为额外的熵随机数生成器(推荐)
cat/dev/random命令会消耗熵池, rngd守护进程会补充熵池,可使用如下命令来测试随机数生成的情况:
2、[软件随机数生成器]在rng-tools仍不满足的情况下,可使用haveged作为额外的熵随机数生成器
要检查是否需要 Haveged,可使用下面命令查看当前收集到的熵:
如果结果比较低(<1000),建议安装 haveged,否则加密程序会处于等待状态,直到系统有足够的熵。
安装 haveged之后,可以再次查看系统熵看下有无提升。
因为方法一存在一定的不安全性,且需要对环境进行配置,为了满足熵的需要,这里笔者选择了第二种方法,使用rng-tools作为额外的熵随机数生成器,同以上操作后顺利解决了问题。
操作后重启tomcat日志如下,启动速度快了两个数量级:
参考文档:
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
这样再用程序调用这域名就不会报超时了。