一臺ubuntu服務器部署多臺tomcat ,並實現外網訪問:

一開始部署多個tomcat ,參考https://blog.csdn.net/qq839177306/article/details/78471058 ,發現這篇博客寫的不對,,謹慎一點說就是:至少我沒有成功實現. ,按照上面鏈接操作可能面臨的問題:

(1) 啓動tomcat2時,發現真實啓動的是tomcat1

(2) 啓動tomcat2時,回報 Cannot find //bin/setclasspath.sh 的錯誤,

接下來詳細敘述我的搭建過程:

首先:下載apache-tomcat-8.5.37  拷貝到/opt/目錄下,複製重命名得到: apache-tomcat-8.5.37-8080 和apache-tomcat-8.5.37-8081 兩個tomcat

第二步: 配置環境變量:

#jdk

export JAVA_HOME=/usr/local/lib/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$JAVA_HOME/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$PATH

#tomcat_2

CATALINA_BASE_2=/opt/apache-tomcat-8.5.37-8080
CATALINA_HOME_2=/opt/apache-tomcat-8.5.37-8080
TOMCAT_HOME_2=/opt/apache-tomcat-8.5.37-8080
export CATALINA_BASE_2 CATALINA_HOME_2 TOMCAT_HOME_2

#tomcat_1

CATALINA_BASE_1=/opt/apache-tomcat-8.5.37-8081
CATALINA_HOME_1=/opt/apache-tomcat-8.5.37-8081
TOMCAT_HOME_1=/opt/apache-tomcat-8.5.37-8081
export CATALINA_BASE_1 CATALINA_HOME_1 TOMCAT_HOME_1

第三步:修改監聽端口  conf/server.xml

tomcat_2:  針對下面三行修改成 如下形式,,tomcat_2 監聽8082端口

<Server port="8007" shutdown="SHUTDOWN">

<Connector port="8082" protocol="HTTP/1.1"

<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

 

tomcat_1:  針對下面三行修改成 如下形式,,tomcat_1 監聽8081端口

<Server port="8006" shutdown="SHUTDOWN">

<Connector port="8081" protocol="HTTP/1.1"

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

第四步: 設置 startup.sh, shutdown.sh, catalina.sh

第一個tomcat裏start.sh,shutdown.sh加入:

export JAVA_HOME_1=/usr/local/lib/jdk1.8.0_191
export CLASSPATH_1=.:${JAVA_HOME}/lib
export PATH_1=${JAVA_HOME_1}/bin:$PATH
export CATALINA_HOME_1=/opt/apache-tomcat-8.5.37-8081
export CATALINA_BASE_1=/opt/apache-tomcat-8.5.37-8081

 

第二個tomcat裏start.sh,shutdown.sh加入:

export JAVA_HOME_2=/usr/local/lib/jdk1.8.0_191
export CLASSPATH_2=.:${JAVA_HOME_2}/lib
export PATH_2=${JAVA_HOME_2}/bin:$PATH
export CATALINA_HOME_2=/opt/apache-tomcat-8.5.37-8082
export CATALINA_BASE_2=/opt/apache-tomcat-8.5.37-8082

exec "$PRGDIR"/"$EXECUTABLE" start "$@"(注意:一定要上面五句話將放在exec前面,否則無效)

 

exec "$PRGDIR"/"$EXECUTABLE" start "$@"(注意:一定要上面五句話將放在exec前面,否則無效)

=》此步配置錯誤的話,經常導致如下錯誤:

[root@xxxxx bin]# sh startup.sh 
/home/xxx/apache-tomcat-8.5.11/bin/catalina.sh: line 120: uname: No such file or directory
/home/xxx/apache-tomcat-8.5.11/bin/catalina.sh: line 141: dirname: No such file or directory
Cannot find //bin/setclasspath.sh
This file is needed to run this program

第五步:設置 catalina.sh   在bin/catalina.sh中第一句有效代碼前面插入

tomcat_1:

export JAVA_HOME=$JAVA_HOME_1
export JRE_HOME=$JRE_HOME_1
export CATALINA_BASE=$CATALINA_BASE_1
export CATALINA_HOME=$CATALINA_HOME_1
export CLASSPATH=$CLASSPATH_1
export PATH=$PATH_1

 

tomcat_2

export JAVA_HOME=$JAVA_HOME_2
export JRE_HOME=$JRE_HOME_2
export CATALINA_BASE=$CATALINA_BASE_2
export CATALINA_HOME=$CATALINA_HOME_2
export CLASSPATH=$CLASSPATH_2
export PATH=$PATH_2

第六步:

(1) 開啓防火牆:  

http://wiki.ubuntu.org.cn/UFW%E9%98%B2%E7%81%AB%E5%A2%99%E7%AE%80%E5%8D%95%E8%AE%BE%E7%BD%AE

(2)設置阿里雲服務器的端口: 快速創建規則

防火牆是服務器自帶或安裝的,是防護軟件,屬於被動防護,是在被攻擊時才進行防護的;

阿里雲的安全組是服務器提供商爲這臺服務器配置的 ,安全組以安全策略進行防護,屬於主動防護,是在未被攻擊時做好安全防護。

要開啓某一個端口對外網訪問,防火牆和安全組都要開放該端口

7: 外網訪問: http://公網ip:8080   http://公網ip:80807: 本機測試: curl http://127.0.0.1:8080   curl http://127.0.0.1:8080

8: 另外發現 tomcat 在啓動時 耗時 好幾分鐘: 解決方法:參考 https://blog.csdn.net/u013939884/article/details/72860358 的文末

修改之後,啓動速度大幅縮短爲1-2秒鐘.
 

一、Start Apache 2 Server /啓動apache服務
# /etc/init.d/apache2 start
or
$ sudo /etc/init.d/apache2 start
二、 Restart Apache 2 Server /重啓apache服務
# /etc/init.d/apache2 restart
or
$ sudo /etc/init.d/apache2 restart
三、Stop Apache 2 Server /停止apache服務
# /etc/init.d/apache2 stop
or
$ sudo /etc/init.d/apache2 stop

10: nginx負載均衡: 實現tomcat 的負載均衡   參考:   https://mp.csdn.net/postedit/85249260

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章