部署tomcat
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.14/bin/apache-tomcat-10.0.14.tar.gz --no-check-certificate
tar -xf apache-tomcat-10.0.14.tar.gz
cp -r apache-tomcat-10.0.14 /usr/local/tomcat/
yum -y install java-1.8.0-openjdk
启动tomcat(tomcat占用8005、8009、8080端口)
systemctl disable firewalld.service --now
sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config
/usr/local/tomcat/bin/startup.sh
启动tomcat失败解决方案:
由于tomcat服务开启时需要大量随机字符,但系统中随机字符不够多的话会导致tomcat服务启动失败
-
方案1
mv /dev/random /dev/random.bak
ln -s /dev/urandom /dev/random -
方案2
yum -y install rng-tools
systemctl start rngd
关闭tomcat
/usr/local/tomcat/bin/shutdown.sh
或
killall java
测试tomcat
静态页面
cd /usr/local/tomcat
echo test > webapps/ROOT/test.html
动态页面
cat > /usr/local/tomcat/webapps/ROOT/test.jsp <<EOF
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
EOF
tomcat搭建虚拟主机
<Host name="域名" appBase="网站页面位置">
</Host>
vim /usr/local/tomcat/conf/server.xml
<Host name="www.b.com" appBase="web_b"> //创建虚拟主机
unpackWARs="true" autoDeploy="true"> //自动解war包,自动更新代码
</Host>
<Host name="www.a.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
。。。
</Host>
测试
mkdir -p /usr/local/tomcat/web_b/ROOT
echo "tomcat-A" > /usr/local/tomcat/webapps/ROOT/index.html
echo "tomcat-B" > /usr/local/tomcat/web_b/ROOT/index.html
重启tomcat、添加hosts文件解析a网站和b网站、访问
curl www.a.com:8080
curl www.b.com:8080
打war包
yum -y install java-1.8.0-openjdk-devel #安装制作war包的依赖工具
jar -cf b.war /var/log #使用jar打war包
cp b.war web_b/ #将war包放入虚拟主机的网页目录
ls web_b/ #因为开启了unpackWARs,所以已经自动解开