您的位置:首页 > 运维架构 > Tomcat

阿里云centos 7 部署 tomcat 后外部不能访问问题

2019-07-02 11:00 453 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_40515983/article/details/94434681

云服务器 centos 7 部署 tomcat 后外部不能访问应用(端口、防火墙、安全组,版本)

问题背景
在 centos7 部署了 tomcat 服务后,启动成功,通过浏览器访问应用时没有响应,但是能 ping 通 centos 机器的 IP。看到有人配置了安全组,仍然无法访问,就修改Tomcat下server.xml中address为本机ip,其实大多数的错误在于防火墙没有重新加载和安全组。无法访问的问题有两大类:限制类和版本类,接下来我为大家分析下,希望对大家有所帮助。

限制类,主要有端口防火墙安全组,这三个相互关联,解决方法如下:

1、查看默认防火墙状态

firewall-cmd --state

如果防火墙已经开启则显示如下:

running

如果防火墙未开启则显示:

not  running

此时我们执行以下命令开启防火墙:

systemctl start firewalld.service

2、检查防火墙的状态

systemctl list-unit-files|grep firewalld.service

如果显示 masked(如果显示 disabled,跳过本步骤)则执行如下命令:

systemctl unmask firewalld

再次检查防火墙状态,这里显示为 disabled

firewalld.service                             disabled

3、添加开放的端口(要是改了端口,命令依次改就好):

firewall-cmd --zone=public --add-port=8080/tcp --permanent
(永久的添加该端口。去掉--permanent则表示临时。)

4、重新加载防火墙(不然仍然访问不到):

firewall-cmd --reload

5、查看开放的端口

firewall-cmd --list-ports

此时显示已有刚刚开放的8080端口:

3306/tcp 514/tcp 6379/tcp 8080/tcp 6060/tcp 7070/tcp 8081/tcp 8082/tcp 8083/tcp

6、附其他命令

#启动一个服务
systemctl start firewalld.service
#关闭一个服务
systemctl stop firewalld.service

#将防火墙服务设置为开机自启动
systemctl enable firewalld.service

#关闭开机自动启动
systemctl disable firewalld.service

#查看端口
firewall-cmd --zone= public --query-port=80/tcp

#删除端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent

7、在确保防火墙和端口已经启动的情况下,配置安全组,网上配置安全组额方法搜索一大堆,这里不在重复。

版本类,主要的问题在于启动方面,看看启动日志,发现Tomcat8和Tomcat9版本启动时会报错如下

Tomcat ans APR lib : requires the APR/native library which is not available

此时,应该从这方面入手解决问题,解决方法网上也有,但是大多数的解决方案为:
Tomcat7\bin下的tcnative-1.dll拷贝到jdk\bin目录下替换
或者
安装tomcat-native(包括插件openssl、apr、apr-util)
但是安装tomcat-native后对于版本Tomcat8或者Tomcat9,仍然不起作用(亲测),所以本人又换回了Tomcat7,要是哪位大神将apr运行模式整好了,可以给我分享下,谢谢!

参考
作者:Rebs_Hugo
原文:https://blog.csdn.net/Rebs_Hugo/article/details/85042602

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: