Ubuntu作为服务器其tomcat被远程访问问题
根據我的Linux版本tomcat下載及安裝安裝好tomcat之后,但是還不能直接訪問我 ubuntu 服務器的公網 ip, 即http://xxx.xxx.xxx.xxx:8080訪問不到 Apache tomcat主頁,還需要進行配置。
一、在路由器管理頁面配置轉發規則
如果你和我一樣,服務器在局域網,但是需要用另一臺非同一局域網下的主機訪問,就需要在服務器上做這個步驟。將服務器局域網的端口映射到公網。
| 1080 | 22 | 192.168.0.xxx | TCP | 生效 |
| 8080 | 8080 | 192.168.0.xxx | TCP | 生效 |
| 80 | 80 | 192.168.0.xxx | TCP | 生效 |
我將我內網的22端口映射到公網ip的1080端口,8080端口就映射到8080,80端口亦如此。
二、修改tomcat的server.xml
這部分我是根據下面兩篇文章來修改的。
參考文章1:搭建tomcat服務器,目標可通過外網ip訪問本機
參考文章2:
外網訪問Ubuntu下的Tomcat
1、修改tomcat目錄下的/conf/server.xml文件
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />將port字段修改為一個開放端口,你也可以改成80,這樣在訪問時就不用加端口號了,但是要記得開放80端口。我還是使用的8080。
一定要確保該端口是開放的。
端口的開放參考下文:
Ubuntu系統中防火墻的使用和開放端口
我使用的命令有:
查看防火墻的狀態 #sudo ufw status開啟防火墻 #sudo ufw enable關閉防火墻 #sudo ufw disable指定開放8080的tcp協議 #sudo ufw allow 8080/tcp指定關閉8080的tcp協議 #sudo ufw deny 8080/tcp //普通端口不加后面的斜杠和協議即可重啟防火墻,使配置生效 #sudo ufw reload2、修改tomcat/conf/server.xml文件
<Engine name="Catalina" defaultHost="localhost"><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true">同一局域網下:局域網將localhost改為你的IP地址,ubuntu下可以使用ifconfig查看
非同一局域網:首先你要確定你有一個外網ip地址。如果你分配到的是一個局域網IP地址需要經過一系列的轉換為外網ip地址,ubuntu下可以使用curl cip.cc查看。將兩個localhost改為你的公網ip。
一般到這里tomcat的啟動好像大部分就可以了,但是我沒有,我啟動tomcat正常,但是關閉時報/usr/environment/java/jdk1.8.0_281/jre /bin/java: not found,這時我只知道我環境變量肯定存在問題。
三、其他可能需要的操作
3、打開apache-tomcat-9.0.44/bin中的startup.sh、shutdown.sh文件進行配置
將自己的java環境變量復制到這個位置,以及Tomcat的環境變量。
參考文章:
Ubuntu16.04安裝配置tomcat及windows無法訪問解決方案
4、在tomcat的配置文件 service.xml加上 address=“0.0.0.0”
localhost可以訪問,127.0.0.1和本地IP無法訪問
<Connector address="0.0.0.0" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />5、如果你的tomcat啟動時正常,但是執行./shutdown.sh時報錯
一是看命令行窗口錯誤信息,二是看tomcat目錄中logs文件夾下的catalina.sh中的錯誤日志,內容是一致的。我當時到這里都沒有解決,然后仔細看錯誤信息。
/usr/environment/java/jdk1.8.0_281/jre /bin/java: not found去該目錄下查找java文件,是可以找到的,所以確定是java環境變量的問題,jre后面多了兩個空格,那么在我所有與java環境變量有關的配置文件中,都去檢查修改了一遍。將jre與下一行export之間的兩個空格去掉,最后成功了。
export JAVA_HOME=/usr/environment/java/jdk1.8.0_281 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=$PATH:${JAVA_HOME}/bin:$JRE_HOME/bin在本地windows主機下訪問:
http://113.54.xxx.xxx:8080/
tomcat主頁面終于出來了。
總結
以上是生活随笔為你收集整理的Ubuntu作为服务器其tomcat被远程访问问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无法打开caffe.pb.h, no s
- 下一篇: 的环境下 qt 运行在_Ubuntu16