在真实的开发中,会利用Nginx实现这种效果,就是对于外网,是无法直接访问tomcat服务器的,只能通过nginx, 也就是内网来代理tomcat进行访问, 此时nginx可以成为网关服务器, 并且它还包括了反向代理, 负载均衡, 动静分离功能.
启动tomcat服务器防火墙.
systemctl start firewalld.service
当服务端开启防火墙后,从浏览器(也可以理解成外网)就无法访问tomcat服务器了.
此时使用nginx 代理tomcat服务器也是无法访问的.
接下来在tomcat服务器上添加防火墙规则,指定nginx 的ip地址才可访问8080端口.
执行命令:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.195.128" port protocol="tcp" port="8080" accept"
.
这段代码意思是指 只允许nginx服务器访问运行tomcat服务的服务器的8080端口.
加完规则后不是实时生效,需要重启防火墙.
systemctl restart firewalld.service
.
使用nginx服务器代理tomcat服务器,可以访问成功.
但是此时直接访问tomcat服务器,tomcat服务器直接访问还是失败,此时就只能通过nginx来访问tomcat了.
最后查看防火墙规则; firewall -cmd --list-all
移除规则(add 改为remove即可)
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.195.128" port protocol="tcp" port="8080" accept"
.
附带: Centos7 防火墙常用命令
一. 系统防火墙
1. 启动防火墙
systemctl start firewalld
2. 关闭防火墙
systemctl stop firewalld
3. 查看状态
systemctl status firewalld
4. 开机启用防火墙
systemctl enable firewalld
5. 开机禁用防火墙
systemctl disable firewalld
二. 某个端口的防火墙
1. 开放某个端口,如8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重新加载配置
firewall-cmd --reload
2. 查看防火墙锁开放的端口
firewall-cmd --zone=public --list-ports
3. 查看某个端口的访问权限, 如8080
firewall-cmd --zone=public --query-port=8080/tcp
4. 关闭某个端口的防火墙, 如8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent