一台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

 

 

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页