Tomcat 多实例部署

安装 Tomcat & JDK
  • 安装时候选择 tomcat 软件版本要与程序开发使用的版本一致。jdk 版本要进行与 tomcat 保持一致。
    1、系统环境说明
[root@test.com ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@test.com ~]# uname -a 
Linux test.com 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@test.com ~]# getenforce 
Disabled
[root@test.com ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

2 、安装 JDK

1、命令集

[root@test.com ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/
[root@test.com ~]# cd /usr/local/
[root@test.com local]# ln -s jdk1.8.0_201/ java
# 设置环境变量
[root@test.com ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@test.com ~]# source /etc/profile

2、测试jdk是否安装成功

[root@test.com ~]# java -version
java version "jdk1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

3、安装Tomcat

[root@test.com ~]# tar xf apache-tomcat-8.0.27.tar.gz -C /usr/local/
[root@test.com ~]# cd /usr/local/
[root@test.com ~]# ln -s /usr/laocal/apache-tomcat-8.0.27 /usr/local/tomcat
# 设置环境变量
[root@test.com ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export TOMCAT_HOME=/usr/local/tomcat
export JRE_HOME=/usr/local/java/jre
export PATH=$TOMCAT_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 注意授权,统一权限
[root@test.com ~]# chown -R root.root /usr/local/jdk/ /usr/local/tomcat/

4、检查tomcat是否安装成功

[root@test.com ~]# /usr/local/tomcat/bin/version.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built:   Sep 28 2015 08:17:25 UTC
Server number:  8.0.27.0
OS Name:        Linux
OS Version:     3.10.0-693.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_60-b27
JVM Vendor:     Oracle Corporation

3、Tomcat 的管理

# 启动程序/usr/local/tomcat/bin/startup.sh
# 关闭程序/usr/local/tomcat/bin/shutdown.sh

4、检查tomcat是否启动正常

[root@test.com ~]# netstat -lntup  |grep java
tcp6       0      0 :::8080         :::*                   LISTEN      30560/java          
tcp6       0      0 127.0.0.1:8005          :::*          LISTEN      30560/java          
tcp6       0      0 :::8009                 :::*           LISTEN      30560/java

5、Tomcat 日志说明

[root@test.com ~]# tailf /usr/local/tomcat/logs/catalina.out
24-Nov-2017 15:09:51.654 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
24-Nov-2017 15:09:51.665 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
24-Nov-2017 15:09:51.670 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 60037 ms

6、WEB站点部署

  • 上线的代码有两种方式:

    • 第一种方式是直接将程序目录放在 webapps 目录下面。
    • 第二种方式是使用开发工具将程序打包成 war 包,然后上传到 webapps 目录下面。

    1、直接部署 web 站点

[root@test.com webapps]# pwd
/usr/local/tomcat/webapps
[root@test.com webapps]# 
[root@test.com webapps]# cat /usr/local/tomcat/webapps/memtest/meminfo.jsp 
<%
Runtime rtm = Runtime.getRuntime();
long mm = rtm.maxMemory()/1024/1024;
long tm = rtm.totalMemory()/1024/1024;
long fm = rtm.freeMemory()/1024/1024;

out.println("JVM memory detail info :<br>");
out.println("Max memory:"+mm+"MB"+"<br>");
out.println("Total memory:"+tm+"MB"+"<br>");
out.println("Free memory:"+fm+"MB"+"<br>");
out.println("Available memory can be used is :"+(mm+fm-tm)+"MB"+"<br>");
%>

站点部署

[root@test.com webapps]# ls
docs  examples  host-manager  logs  manager  memtest  memtest.war  ROOT

2、自定义默认网站目录
方法一

  • 将 meminfo.jsp 或其他程序放在 tomcat/webapps/ROOT目录下即可。因为默认网站根目录为 tomcat/webapps/ROOT

方法二

[root@test.com ~]# vim /usr/local/tomcat/conf/server.xml +125
…… #添加上这两行
        <Context path="" docBase="/usr/local/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
        <Context path="/40team" docBase="/usr/local/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
……

修改配置文件后,要重启服务

[root@test.com ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@test.com ~]# /usr/local/tomcat/bin/startup.sh 

7、Tomcat 多实例配置
多虚拟主机:nginx 多个Server标签(域名,ip,端口) 进程数量固定 master+worker

多实例(多进程):同一个程序启动多次,分为两种情况:

第一种:一台机器跑多个站点;

第二种:一个机器跑一个站点多个实例,配合负载均衡

1、复制程序文件

[root@test.com ~]# cd /usr/local/tools/
[root@test.com ~]# tar xf apache-tomcat-8.0.27.tar.gz
[root@test.com ~]# cp -a apache-tomcat-8.0.27 tomcat8_1
[root@test.com ~]# cp -a apache-tomcat-8.0.27 tomcat8_2

2、修改端口,以启动多实例。多实例之间端口不能一致

[root@test.com ~]# sed -i 's#8005#8011#;s#8080#8081#' tomcat8_1/conf/server.xml
[root@test.com ~]# sed -i 's#8005#8012#;s#8080#8082#' tomcat8_2/conf/server.xml
[root@test.com application]# diff tomcat8_1/conf/server.xml tomcat8_2/conf/server.xml
22c22
< <Server port="8011" shutdown="SHUTDOWN">
---
> <Server port="8012" shutdown="SHUTDOWN">
67c67
<          Define a non-SSL/TLS HTTP/1.1 Connector on port 8081
---
>          Define a non-SSL/TLS HTTP/1.1 Connector on port 8082
69c69
<     <Connector port="8081" protocol="HTTP/1.1"
---
>     <Connector port="8082" protocol="HTTP/1.1"
75c75
<                port="8081" protocol="HTTP/1.1"
---
>                port="8082" protocol="HTTP/1.1"

3、将配置好的tomcat程序打包,以备之后使用

[root@test.com ~]# tar zcf muti_tomcat8.tar.gz ./tomcat8_1 ./tomcat8_2

4、启动tomcat多实例

[root@test.com ~]# /usr/local/tomcat8_1/bin/startup.sh 
[root@test.com ~]# /usr/local/tomcat8_2/bin/startup.sh

5、检查端口是否启动

[root@test.com tomcat8_1]# netstat -lntup |grep java
tcp6   0   0 127.0.0.1:8011    :::*    LISTEN   31906/java
tcp6   0   0 127.0.0.1:8012    :::*    LISTEN   31932/java
tcp6   0   0 :::8080           :::*    LISTEN   31812/java
tcp6   0   0 :::8081           :::*    LISTEN   31906/java
tcp6   0   0 :::8082           :::*    LISTEN   31932/java
tcp6   0   0 127.0.0.1:8005    :::*    LISTEN   31812/java
tcp6   0   0 :::8009           :::*    LISTEN   31812/java

6、将每个实例的网页进行区分

[root@test.com ~]# echo 8081 >>/usr/local/tomcat8_1/webapps/ROOT/index.jsp 
[root@test.com ~]# echo 8082 >>/usr/local/tomcat8_2/webapps/ROOT/index.jsp

7、在浏览器访问,进行测试
使用curl 命令进行测试,awk 进行关键字提取

[root@test.com ~]# curl -s 10.0.0.5|awk 'END{print}'
8082
[root@test.com ~]# curl -s 10.0.0.5|awk 'END{print}'
8081
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值