|
| 1 | +--- |
| 2 | +title: Linux配置Tomcat的单机多实例 |
| 3 | +date: 2018-08-10 01:14:35 |
| 4 | +url: develop/install-tomcat-many-instance |
| 5 | +tags: |
| 6 | + - Tomcat |
| 7 | +categories: |
| 8 | + - Linux |
| 9 | +--- |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +有时候需要在一个服务器上部署多个Tomcat,通过不同的端口进行区分,比如,反向代理。但是不想简单的通过复制Tomcat来实现,这样既不方便以后的升级也不方便管理,那么这时候就需要配置Tomcat的单机多实例了。 |
| 14 | +以下操作运行于Linux下。 |
| 15 | + |
| 16 | +### Tomcat 下载 |
| 17 | +Tomcat的下载可以直接到Tomcat官方网站下载自己需要的版本,博主这里下载的Tomcat8.5.*32* |
| 18 | + |
| 19 | +```shell |
| 20 | +// 解压 |
| 21 | +tar -zxvf apache-tomcat-8.5.32.tar.gz |
| 22 | +``` |
| 23 | +<!-- more --> |
| 24 | +可以看到解压后目录如下: |
| 25 | + |
| 26 | +```shell |
| 27 | +niu@ubuntu:~/develop/test$ cd apache-tomcat-8.5.32/ |
| 28 | +niu@ubuntu:~/develop/test/apache-tomcat-8.5.32$ ll |
| 29 | +total 120 |
| 30 | +drwxr-x--- 2 niu niu 4096 8月 10 01:35 bin/ |
| 31 | +drwx------ 2 niu niu 4096 6月 20 12:53 conf/ |
| 32 | +drwxr-x--- 2 niu niu 4096 8月 10 01:35 lib/ |
| 33 | +-rw-r----- 1 niu niu 57092 6月 20 12:53 LICENSE |
| 34 | +drwxr-x--- 2 niu niu 4096 6月 20 12:50 logs/ |
| 35 | +-rw-r----- 1 niu niu 1723 6月 20 12:53 NOTICE |
| 36 | +-rw-r----- 1 niu niu 7138 6月 20 12:53 RELEASE-NOTES |
| 37 | +-rw-r----- 1 niu niu 16246 6月 20 12:53 RUNNING.txt |
| 38 | +drwxr-x--- 2 niu niu 4096 8月 10 01:35 temp/ |
| 39 | +drwxr-x--- 7 niu niu 4096 6月 20 12:51 webapps/ |
| 40 | +drwxr-x--- 2 niu niu 4096 6月 20 12:50 work/ |
| 41 | +``` |
| 42 | + |
| 43 | +### 配置多实例模版 |
| 44 | +要实现单Tomcat的多实例启动,首先我们要修改一下当前的Tomcat目录结构具体操作如下。为了方便,我们会先配置一个模版实例,然后在模版实例中编写一个启动停止shell脚本。以后扩展实例只需要拷贝一份修改端口号。 |
| 45 | +```shell |
| 46 | +// 删除无用文件 |
| 47 | +rm LICENSE |
| 48 | +rm NOTICE |
| 49 | +rm RELEASE-NOTES |
| 50 | +rm RUNNING.txt |
| 51 | +// 创建WEB实例模版文件夹,以后部署新实例只需要拷贝一份 |
| 52 | +mkdir web-template |
| 53 | +// 移动实例文件到实例模版文件夹 |
| 54 | +mv conf/ ./web-template/ |
| 55 | +mv logs/ ./web-template/ |
| 56 | +mv tem/ ./web-template/ |
| 57 | +mv temp/ ./web-template/ |
| 58 | +mv webapps/ ./web-template/ |
| 59 | +mv work/ ./web-template/ |
| 60 | +``` |
| 61 | +在模版文件夹下编写启动停止Tomcat的shell脚本。 |
| 62 | +```shell |
| 63 | +// 新建sehll脚本 |
| 64 | +vim tomcat.sh |
| 65 | +``` |
| 66 | +输入如下内容: |
| 67 | +```shell |
| 68 | +RETVAL=$? |
| 69 | +# tomcat实例目录 |
| 70 | +export CATALINA_BASE="$PWD" |
| 71 | +# tomcat安装目录,改成自己的 |
| 72 | +export CATALINA_HOME="/home/niu/develop/test/apache-tomcat-8.5.32" |
| 73 | +# 可选 |
| 74 | +export JVM_OPTIONS="-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m" |
| 75 | +case "$1" in |
| 76 | +start) |
| 77 | +if [ -f $CATALINA_HOME/bin/startup.sh ];then |
| 78 | +echo $"Start Tomcat" |
| 79 | +$CATALINA_HOME/bin/startup.sh |
| 80 | +fi |
| 81 | +;; |
| 82 | +stop) |
| 83 | +if [ -f $CATALINA_HOME/bin/shutdown.sh ];then |
| 84 | +echo $"Stop Tomcat" |
| 85 | +$CATALINA_HOME/bin/shutdown.sh |
| 86 | +fi |
| 87 | +;; |
| 88 | +*) |
| 89 | +echo $"Usage:$0 {start|stop}" |
| 90 | +exit 1 |
| 91 | +;; |
| 92 | +esac |
| 93 | +exit $RETVAL |
| 94 | +``` |
| 95 | +保存退出,赋予执行权限。 |
| 96 | +```shell |
| 97 | +chmod +x tomcat.sh |
| 98 | +``` |
| 99 | +经过上面的操作,现在的Tomcat目录结构如下: |
| 100 | +```shell |
| 101 | +apache-tomcat-8.5.32 |
| 102 | +├── bin |
| 103 | +├── lib |
| 104 | +└── web-template |
| 105 | + ├── conf |
| 106 | + ├── logs |
| 107 | + ├── temp |
| 108 | + ├── webapps |
| 109 | + └── work |
| 110 | +``` |
| 111 | +### 测试实例模版 |
| 112 | +实例模版中包含config文件夹,也就是此实例的配置文件,可以修改端口号等信息。我们没有进行修改过,默认也就是`8080`。webapps文件夹中的ROOT目录也就是Tomcat的默认发布目录,我们没有进行修改,里面存放的是Tomcat默认首页信息。 |
| 113 | +```shell |
| 114 | +// 启动模版实例进行测试,可以看到正常启动的日志 |
| 115 | +tomcat.sh start |
| 116 | +// 停止则使用stop |
| 117 | +tomcat.sh stop |
| 118 | +``` |
| 119 | +成功启动后,访问IP+8080进行测试。 |
| 120 | + |
| 121 | +看到属性的页面,大功告成。距离多实例只有一步之遥。 |
| 122 | + |
| 123 | +### 增加一个实例 |
| 124 | +增加一个实例,只拷贝一份模版实例。然后修改端口号即可。不然会因为端口占用而无法启动。 |
| 125 | +```shell |
| 126 | +# 拷贝一份实例 |
| 127 | +cp -r web-template/ web-9090 |
| 128 | +# 修改端口号为9090 |
| 129 | +vim conf/server.xml |
| 130 | +# 修改HTTP端口号从8080变为9090,第69行左右 |
| 131 | +<Connector port="9090" protocol="HTTP/1.1" |
| 132 | + connectionTimeout="20000" |
| 133 | + redirectPort="8443" /> |
| 134 | +# 修改SHUTDOWN端口号从8005变为9005,第22行左右 |
| 135 | +ver port="9005" shutdown="SHUTDOWN"> |
| 136 | +# 保存,退出,启动 |
| 137 | +tomcat.sh start |
| 138 | +``` |
| 139 | + |
| 140 | +此时可以访问IP+端口9090进行访问测试。 |
| 141 | + |
| 142 | + |
| 143 | +到这里,多实例已经部署完成,关闭各个Tomcat。退出终端。 |
| 144 | + |
| 145 | +增加实例只需要拷贝模版实例然后修改端口号。每个实例都有自己单独的配置,可以独立管理启动。 |
| 146 | + |
0 commit comments