- 操作系统:centos7.4 64位
- jdk:1.8
- tomcat:9.0.12两台
- mysql:5.7.23
- nginx:1.14
首先确认是否安装过jdk:
java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
如果得到上述内容请先卸载系统自带的,从oracle官网获取适合的jdk。oracle官网JDK8下载链接
根据系统选择合适的版本,这里我选择的是jdk-8u181-linux-x64.rpm。我将安装介质都放在了/home/tools目录下
选择/home/tools目录下载jdk:
cd /home
mkdir tools
cd tools
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm"
因为需要通过oracle的授权不能直接wget 下载地址来下载,需要通过上述的方式下载,否则不能安装jdk。下载完毕后再当前目录执行下面的命令(默认安装在/usr/java目录下,不用配置环境变量)
rpm -ivh jdk-8u181-linux-x64.rpm
安装完毕后确认是否成功:
java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
进入/home/tools 下载tomcat资源:tomcat9下载官网
cd /home/tools
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
下载完毕后解压安装:
tar -zxvf apache-tomcat-9.0.12.tar.gz
解压后将tomcat复制到/usr/local/目录下 并重命名:
mv类似于windows的剪切,还可以使用cp效果一样不过会保留源文件,apache-tomcat-9.0.12是源文件夹,/usr/local/tomcat是目标文件夹
mv apache-tomcat-9.0.12 /usr/local/tomcat
进入bin目录并启动tomcat:
cd /usr/local/tomcat/bin
./startup.sh
进入log目录查看启动日志:
cd /usr/local/tomcat/logs/
tail -100f catalina.out
27-Sep-2018 15:02:56.141 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
27-Sep-2018 15:02:56.148 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
27-Sep-2018 15:02:56.151 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 7172 ms
当你看到startup in XXXX ms,则代表服务器启动成功。可以在浏览器中输入http://yourIP:8080 验证是否成功,如果出现经典小猫猫网站就ok了。远程机访问注意端口可能被防火墙拦住,需要开启端口。
当然以上是最基本的安装结果。为了实现集群我们还需要再安装至少一个tomcat。我这里是在一台阿里云服务器上安装两台tomcat实现集群。这个很简单:直接拷贝一份tomcat后重命名即可。
首先停止服务:
cd /usr/local/tomcat/bin
./shutdown.sh
然后拷贝tomcat:
mv /usr/local/tomcat /usr/local/tomcat1
cp -r /usr/local/tomcat1 /usr/local/tomcat2
先将原来的tomcat重命名为tomcat1,再将tomcat1复制一份重命名为tomcat2,这样我们就得到两份tomcat了
接下来修改配置文件,让两台tomcat都可以启动:
vim /etc/profile
找到文件的最末尾添加下面这段代码
###### 第一个tomcat ##########
CATALINA_BASE=/usr/local/tomcat1
CATALINA_HOME=/usr/local/tomcat1
TOMCAT_HOME=/usr/local/tomcat1
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
###### 第二个tomcat ##########
CATALINA_2_BASE=/usr/local/tomcat2
CATALINA_2_HOME=/usr/local/tomcat2
TOMCAT_2_HOME=/usr/local/tomcat2
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
修改完毕后,按SHIFT+;键,然后输入wq保存并退出。
:wq
修改tomcat的conf目录下的server.xml文件:由于tomcat启动会占用两个端口,为了防止两个tomcat启动时端口冲突,这里必须修改。
cd /usr/local/tomcat1/conf/
vim server.xml
其中第一个端口8005是在关闭服务的时候用的如果冲突会导致服务无法正常关闭,第二个端口8080是TCP连接监听的端口对外提供服务。
修改端口号:
cd /usr/local/tomcat2/conf/
vim server.xml
修改后:
接下来继续修改tomcat的bin目录下的catalina.sh文件
step1:备份tomcat1
cd /usr/local/tomcat1/bin/
cp catalina.sh catalina.sh.bak
vim catalina.sh
step2:找到# OS specific support. $var _must_ be set to either true or false. 这段话后在后面插入下面一段代码:这段代码是之前在/etc/profile中配置的两个tomcat环境变量
export CATALINA_BASE=$CATALINA_BASE
export CATALINA_HOME=$CATALINA_HOME
step3:备份tomcat2
cd /usr/local/tomcat2/bin/
cp catalina.sh catalina.sh.bak
vim catalina.sh
step4:找到# OS specific support. $var _must_ be set to either true or false. 这段话后在后面插入下面一段代码
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
接下就是启动两个tomcat,见证成功的时刻了:
step1:启动第一个tomcat
cd /usr/local/tomcat1/bin
./startup.sh
step2:启动第二个tomcat
cd /usr/local/tomcat2/bin
./startup.sh
step3:查看启动日志:
cd /usr/local/tomcat1/logs
tail -100f catalina.out
两个tomcat都启动完毕后打开网页浏览,输入地址:http://yourIP:8081和http://yourIP:8082分别测试两个tomcat是否启动成功。
参考文章:袁大神的架构师系列-让tomcat飞起来
一共涉及两个地方:
jvm启动参数和server.xml
1):tomcat-9的jvm优化
export JAVA_OPTS="
-server -Xms2048M -Xmx2048M
-Xss512k -XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:+DisableExplicitGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true "
上述代码在tomcat的bin目录下的catalina.sh文件中追加,找到# OS specific support. $var _must_ be set to either true or false.这句话。直接在下面添加。
2):server.xml的优化
上述这段代码是默认的8080端口和HTTP1.1协议,切勿改错地方。这里我的端口改成了8081,大家根据自己需要自行修改。
欢迎各位提出问题,互相探讨,共同进步。