背景
申请了个学生云服务器熟悉下真实环境,安装tomcat的时候踩了坑,记录一下。
系统:centos7
安装流程
# 下载tomcat的源文件
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.39/src/apache-tomcat-9.0.39-src.tar.gz
解压+移动文件目录,可参考之前的centos安装jdk的内容
tar -zxvf apache-tomcat-9.0.39.tar.gz
mv apache-tomcat-9.0.39.tar.gz tomcat
mv tomcat /usr/local/
cd /usr/local/bin
sh startup.sh
情况
[root@**** bin]# sh startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/bin/jdk-15.0.1
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
按理来说应该是完成正常了,检查过阿里云的防火墙端口,也开放了8080端口。
阿里云端口.png
推断
之前针对centos的初始化操作都是直接关闭防火墙,估计是centos7自带的防火墙关闭了对应端口(以为阿里云开放端口后会联动centos7防火墙的设置,果然是我想多了)
解决方法
# 将8080端口放入public规则组中
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
查看所有的public组所打开的端口:
[root@*** bin]# firewall-cmd --zone=public --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 8080/tcp
问题解决!
查看firewall-cmd的所有命令:
firewall-cmd --help
关于centos的防火墙细则,有太多不了解。后续会针对这块内容补充这篇文章。
让tomcat使用80端口
查阅很多资料,说直接修改 /conf/server.xml里的port变为80即可。
其实不可以,原因貌似是tomcat默认不会以root角色开启,所以没法生效。
解决办法:
# 利用iptable的转发功能,将80端口指向8080即可。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
网友评论