一、本地无法访问部署的tomcat
本人使用的是CentOs6.5。
部署jenkins的时候,首先在Linux下安装了tomcat,tomcat启动成功后,在Linux可以正常访问,但是在本地各种访问不到(localhost、127.0.0.1、ip)本地和虚拟机的网络是可以ping通的,还是访问不到,如下图
排查了一下问题:
- 端口号是否被占用
- tomcat是否已经正常启动
- ip地址是否输入正确
- 虚拟机和本地网络是否可以ping通
- 端口号是否被防火墙拦截
我得tomcat安装目录是/usr/local/tomcat,关于详细的安装教程可以参考https://www.cnblogs.com/proper128/p/11181760.html
,其中这个上面的下载tomcat的链接已经失效了,如果想要下载可以去官网获取下载路径,
如:wget
https://downloads.apache.org/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
按照上面的配置成功后,发现本地并不能访问,其中查找了很多博客,很多是描述防火墙问题的,然而我的并不是防火墙问题。
1.端口号是否被占用
我使用的端口号是8081,tomcat默认的端口号是8080,使用哪个无所谓,只要未被占用就可以。
启动tomcat之前使用命令查看端口是否被占用。netstat -an | grep 8081
如果没有被占用
如果使用这个端口启动过tomcat,然后关闭,再去查看该端口。会发现如下图所示,是正常情况。一般情况下,自己练习不会出现这个问题。
2.关于tomcat是否已经正常启动的验证
进入tomcat的bin目录,启动tomcat。
./startup.sh
如下是成功启动。
查看tomcat进行是否启动ps -ef | grep tomcat
,如下是成功启动
3.ping网络
虚拟机ping本机,本机ping虚拟机,这个如果有问题的话应该早就发现了。
4.Linux下访问tomcat
使用curl+虚拟机ip地址+端口号
如果修改tomcat中配置文件servic.xml时没有增加URIEncoding=“UTF-8”,不会出现下面的网址信息。
访问失败的提示信息是:
5.端口号是否被防火墙拦截
最简单的解决方案是关闭防火墙,注意这里的防火墙指的是Linux下的防火墙。
CentOs6.5防火墙命令
- 关闭:service iptables stop
- 开启:service iptables start
- 查看防火墙状态:service iptables status
关闭之后如果跟还不能访问就不是防火墙的问题了。
还可以添加防火墙的通过端口。
进入防火墙的配置文件 vim /etc/sysconfig/iptables
现在开放了22、8881、8080、80这几个端口,可以把其中某一行复制,把端口号修改了,粘贴到下一行。修改文件后,重新启动防火墙就可以。启动后的显示如下:
5.解决方案
最后发现是我虚拟机的问题,虚拟机的网络应该选择桥接模式。
我本地ip是192.168.1.5
虚拟机ip192.168.1.8
service.xml
配置文件中主机name是localhost
在Linux中可以使用(localhost、127.0.0.1、虚拟机地址:192.168.1.8进行访问tomcat)
在客户端机只能通过192.168.1.8进行访问。
搭配的初衷是为了安装Jenkins,把测试代码进行持续集成。