今天晚上被一个学员问到,tomcat搭建在服务器上,已经启动了tomcat服务,为啥用在windows浏览器输入http://服务器ip:8080/无法访问tomcat主页。
于是我开始了排查问题之路:
首先确认windows和服务器网络是否互通:ping 服务器ip
最终结果:能ping通,显然不是这个问题
tomcat的服务是否启动,
连接linux系统,输入命令:ps -ef | grep tomcat
最终结果:看到tomcat进程已经启动,显然也不是这个问题
与学员确认linux系统版本,得知是CentOS7版本,开始有一点点头绪了,因为在CentOS7上安装tomcat后,其他同网段的机器上却不能访问该地址,原因是因为linux在安装之后默认只开放个别端口供外机访问,这个时候我们只需要将8080端口设置为向外机开放即可
CentOS7使用firewall工具管理防火墙,代替了原来的iptables命令,
首先输入命令查看一下防火墙是否启动:firewall-cmd --state,显示结果未启动,于是启动防火墙,输入命令:systemctl start firewalld.service,启动成功,再检查一次:running状态,已开启
输入命令,永久添加8080端口:firewall-cmd --add-port=8080/tcp --permanent ,然后输入重载刚刚生效的端口设置命令:firewall-cmd --reload,显示success成功
返回tomcat的目录下,进入bin目录下,重启tomcat服务,然后打开windows浏览器,重新输入http://服务器ip:8080,结果发现还是无法进
tomcat主页
再和学员一番询问之下,终于找到了问题所在了,学员买的服务器是天翼云,而天翼云平台的这些端口80,8080,443,8443,都需要备案才可以用,于是就知道如何解决了
tomcat默认端口就是8080,所以需要修改tomcat的默认端口,进入tomcat的conf目录下,输入命令:vi server.xml ,修改tomcat的默认端口为9999,然后保存并退出
重新配置添加防火墙端口9999,输入命令:firewall-cmd --add-port=9999/tcp --permanent ,然后再输入重载刚刚生效的端口设置命令:firewall-cmd --reload,显示success成功,再输入查看已开放的端口命令:firewall-cmd --list-ports,如图:
最后再次重启tomcat服务,进入bin目录下,先输入停止:/shutdown.sh,再输入开启服务: ./startup.sh,最后再浏览器输入 http://服务器ip:9999 ,终于可以看到tomcat主页了