tomcat
部署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端口)
8080网站服务端口
8009连接其他网站服务端口(新版tomcat默认关闭)
8005关闭tomcat时需要的端口
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搭建虚拟主机
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,所以已经自动解开
tomcat访问路径与页面位置
- 测试1:
<Host name="www.b.com" appBase="web_b">
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="" /> //docBase:定义页面二级目录(默认为ROOT)
</Host>
docBase="/usr/local/tomcat/abc" //如果docBase设置了绝对路径,那么会屏蔽appBase的路径
- 测试2:
<Host name="www.b.com" appBase="web_b">
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="abc" /> //path:匹配用户访问网站的路径,当用户访问对应路径时显示docBase中定义的页面
</Host>
效果:curl www.b.com:8080 显示的是web_b/ROOT/下的页面
curl www.b.com:8080/test/ 显示的是web_b/abc/下的页面
开启日志
<Host name="www.b.com" appBase="web_b"
unpackWARs="true" autoDeploy="true">
<Context path="/test" docBase="abc" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" //开启日志功能
prefix="www-b-com_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
日志存储在/usr/local/tomcat/logs中
java网站项目
tar -xf apache-maven-3.6.3-bin.tar.gz
tar -xf cms.tar.gz
tar -xf m2.tar.gz
cp -r apache-maven-3.6.3 /usr/local/maven
yum -y install java-1.8.0-openjdk java-devel mariadb mariadb-server
systemctl start mariadb
修改镜像地址,158行下添加
vim /usr/local/maven/conf/settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置数据库
cd CMS/
cp src/main/resources/shishuocms.properties .
mysqladmin password 12345678
mysql -uroot -p12345678 < sql/install.sql
构建项目
/usr/local/maven/bin/mvn clean package
启用网站项目
rm -rf /usr/local/tomcat/webapps/ROOT/
cp target/shishuocms-2.0.1.war /usr/local/tomcat/webapps/ROOT.war
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
tomcat搭建安全网站
vim /usr/local/tomcat/conf/server.xml
<!-- Define an SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate
certificateKeystoreFile="/usr/local/tomcat/keystore"
certificateKeystorePassword="123456"
type="RSA"
/>
</SSLHostConfig>
</Connector>
生成证书
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore
重启服务
测试:curl -k https://127.0.0.1:8443
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律