先說一下本人的使用背景,前兩天完成一個java項目部署到阿里雲服務器(tomocat端口是默認的8080),在阿里雲中配置了自己的安全組策略,如下圖顯示.但是在本地訪問項目地址顯示訪問超時,琢磨了很久才發現阿里雲的防火牆阻止了外網對8080端口的訪問(之前做PHP項目直接在安全組開個端口就OK了)。一開始的臨時解決方案是關閉防火牆,后來研究了一下阿里雲centos7的防火牆,寫下這篇隨筆作為總結。
一:訪問項目首先要將打包好的war包放到tomcat的webapp目錄下(war包的打包流程日后總結),然后就是啟動tomcat服務(到bin目錄下使用:sh startup.sh 命令啟動,關閉使用 sh shutdown.sh 命令,這里注意:關閉后要把對應的進程殺掉,不然為再次啟動后原來的進程還會在,造成內存的大量消耗),到這里為止是阿里雲java項目的正常部署就結束了,如果項目能通過外網正常訪問那么部署結束!如果不能則進行第二步操作。
二:阿里雲防火牆之firewalld,阿里雲centos7防火牆服務默認是firewalld來管理的,而firewalld沒有對8080端口開放,所以我們要進行firewalld的開放。
(一)、第一部是登錄阿里雲服務器,使用firewall-cmd --list-ports命令來查看firewalld已開放的端口(這里看到8080端口已經開放)
(二)、如果沒有開放,使用firewall-cmd --zone=public --add-port=8080/tcp --permanent開放8080端口,其中--permanent的作用是使設置永久生效,不加的話機器重啟之后失效。
(三)、重啟防火牆
(四)、打開外部瀏覽器,輸入對應鏈接即可顯示tomcat頁面,到這里所有操作就已經全部結束
三:阿里雲防火牆之iptables,centos7之前都是iptables來管理防火牆的,這里如果沒必要再去下載安裝,直接使用firewalld即可,寫到這里,着重說一下自己當時遇到的一些問題,如果啟動了iptables(systemctl restart iptables),
則firewalld防火牆會被鎖定,這時是通過(systemctl start firewalld)命令啟fireworlld會報unit is masked的錯誤,
需要先使用(systemctl unmask firewalld)解鎖,
解鎖完了就可以正常使用firewalld了。這里我猜測一下,一個系統只能由一個服務來做防火牆,如果啟動了一個,另外一個就會被鎖定。