1. 首页
  2. 技术知识

Tomcat多实例与负载均衡示例详解

目录

    一、Tomcat多实例

      1.1 安装好 jdk1.2 安装 tomcat1.3 配置 tomcat 环境变量1.4修改tomcat2中的主配置文件1.5修改启动脚本和关闭脚本1.6启动tomcat并查看

    二、Nginx+Tomcat负载均衡、动静分离

      2.1 部署Nginx 负载均衡器2.2部署第一台Tomcat2.3部署第二台Tomcat2.4nginx 配置

一、Tomcat多实例


1.1 安装好 jdk

在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。

  1. 1. #关闭防火墙
  2. systemctl stop firewalld
  3. systemctl disable firewalld
  4. setenforce 0
  5. 2. #将安装 Tomcat 所需软件包传到/opt目录下
  6. apache-tomcat-9.0.16.tar.gz
  7. jdk-8u201-linux-x64.rpm
  8. 3. #切换至/opt下,安装JDK
  9. cd /opt
  10. rpm -ivh jdk-8u201-linux-x64.rpm
  11. ?
  12. 4. #查看java版本
  13. java -version

复制代码 关闭防火墙

将安装 Tomcat 所需软件包传到/opt目录下

切换至/opt下,安装JDK

查看java版本

1.2 安装 tomcat

  1. 1. #切换至/opt下,解压tomcat包
  2. cd /opt
  3. tar -zxf apache-tomcat-9.0.16.tar.gz
  4. ?
  5. 2. #新建文件夹/usr/local/tomcat
  6. mkdir /usr/local/tomcat
  7. 3. #将解压后的包拷贝至/usr/local/下并重命名
  8. cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
  9. cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat2

复制代码 切换至/opt下,解压tomcat包

新建文件夹/usr/local/tomcat

将解压后的包拷贝至/usr/local/下并重命名

1.3 配置 tomcat 环境变量

  1. vim /etc    profile
  2. ?
  3. export JАVA_HOME=/usr/java/jdk1.8.0_201-amd64
  4. export CLASSPATH=$JАVA_HOME/lib/tools.jar:$JАVA_HOME/lib/dt.jar
  5. export PATH=$JАVA_HOME/bin:$PATH

复制代码


1.4修改tomcat2中的主配置文件

  1. vim /usr/local/tomcat/tomcat2/conf/server.xml
  2. ?
  3. 22 <Server port=”8006″ shutdown=”SHUTDOWN”>
  4. 69 ? ? <Connector port=”8081″ protocol=”HTTP/1.1″
  5. 116 ? ? <Connector port=”8010″ protocol=”AJP/1.3″ redirectPort=”8443″ />
  6. ?

复制代码


1.5修改启动脚本和关闭脚本

  1. 1. #修改tomcat1的/usr/local/tomcat/tomcat1/bin/startup.sh
  2. vim /usr/local/tomcat/tomcat1/bin/startup.sh
  3. ?
  4. export CATALINA_HOME1=/usr/local/tomcat/tomcat1
  5. export CATALINA_BASE1=/usr/local/tomcat/tomcat1
  6. export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
  7. ?
  8. 2. #修改tomcat1 的/usr/local/tomcat/tomcat1/bin/shutdown.sh
  9. vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
  10. ?
  11. export CATALINA_HOME1=/usr/local/tomcat/tomcat1
  12. export CATALINA_BASE1=/usr/local/tomcat/tomcat1
  13. export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
  14. ?
  15. ?
  16. 3. #修改tomcat2的/usr/local/tomcat/tomcat2bin/startup.sh
  17. vim /usr/local/tomcat/tomcat2/bin/startup.sh
  18. ?
  19. export CATALINA_HOME1=/usr/local/tomcat/tomcat2
  20. export CATALINA_BASE1=/usr/local/tomcat/tomcat2
  21. export TOMCAT_HOME1=/usr/local/tomcat/tomcat2
  22. ?
  23. 4. #修改tomcat2的/usr/local/tomcat/tomcat2/bin/shutdown.sh
  24. vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
  25. ?
  26. export CATALINA_HOME1=/usr/local/tomcat/tomcat2
  27. export CATALINA_BASE1=/usr/local/tomcat/tomcat2
  28. export TOMCAT_HOME1=/usr/local/tomcat/tomcat2
  29. ?

复制代码 修改tomcat1的/usr/local/tomcat/tomcat1/bin/startup.sh

修改tomcat1 的/usr/local/tomcat/tomcat1/bin/shutdown.sh

修改tomcat2的/usr/local/tomcat/tomcat2bin/startup.sh

修改tomcat2的/usr/local/tomcat/tomcat2/bin/shutdown.sh :

1.6启动tomcat并查看

  1. 1. #启动tomcat1
  2. cd /usr/local/tomcat/
  3. ./tomcat1/bin/startup.sh
  4. ?
  5. 2. #启动tomcat2
  6. ./tomcat2/bin/startup.sh
  7. ?
  8. 3. #查看是否启动成功
  9. ss -ntap|grep java
  10. http://192.168.59.118:8080/

复制代码 启动tomcat1、tomcat2

查看是否启动成功

二、Nginx+Tomcat负载均衡、动静分离

    standalone模式,Tomcat单独运行,直接接受用户的请求,不推荐。

反向X,单机运行,提供了一个Nginx作为反向X,可以做到静态由nginx提供响应,动态jsp

X给Tomcat

    LNMT:Linux + Nginx + MySQL + Tomcat

LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat

前置一台Nginx,给多台Tomcat实例做反向X和负载均衡调度,Tomcat上部署的纯动态页面更

适合

LNMT:Linux + Nginx + MySQL + Tomcat

    多级X

LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat

动态服务器的问题,往往就是并发能力太弱,往往需要多台动态服务器一起提供服务。如何把并发的压力分摊,这就需要调度,采用一定的调度策略,将请求分发给不同的服务器,这就是Load Balance负载均衡。

当单机Tomcat,演化出多机多级部署的时候,一个问题便凸显出来,这就是Session。而这个问题的由来,都是由于HTTP协议在设计之初没有想到未来的发展。

2.1 部署Nginx 负载均衡器

环境简介:

ngnix:192.168.59.108

tomcat1:192.168.59.105

tomcat2: 192.168.59.118

  1. 1. #关闭防火墙
  2. systemctl stop firewalld
  3. setenforce 0
  4. ?
  5. 2. #安装依赖关系包
  6. yum -y install pcre-devel zlib-devel gcc gcc-c++ make
  7. ?
  8. 3. #新建用户和组便于管理
  9. useradd -M -s /sbin/nologin nginx
  10. ?
  11. 4. #切换至opt目录,将下载好的压缩包传进来解压
  12. cd /opt
  13. tar -zxf nginx-1.12.0.tar.gz
  14. ?
  15. 4. #切换至解压后的目录下编译
  16. cd nginx-1.12.0
  17. ?
  18. ./configure

复制代码

–prefix=/usr/local/nginx

–user=nginx

–group=nginx

–with-http_stub_status_module

?

5. #安装

make && make install -j4

?

6. #做软连接,让系统识别nginx的操作命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

?

7. #将nginx命令加入服务

cd /lib/systemd/system

vim nginx.service

#!/bin.bash

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/bin/kill -s HUP $MAINPID

ExecStop=/usr/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

?

8. #重新加载单元.启动服务

systemctl daemon-reload

systemctl start nginx

?

9. #查看是否成功启动

ss -ntap|grep nginx

http://192.168.59.108/

关闭防火墙

安装依赖关系包

新建用户和组便于管理

切换至opt目录,将下载好的压缩包传进来

切换至解压后的目录下编译

安装

做软连接,让系统识别nginx的操作命令

将nginx命令加入服务

重新加载单元.启动服务

查看是否成功启动


Tomcat多实例与负载均衡示例详解


2.2部署第一台Tomcat

192.168.59.105

  1. 1. #关闭防火墙
  2. systemctl stop firewalld
  3. setenforce 0
  4. ?
  5. 2. #切换至/opt,将安装 Tomcat 所需软件包传到/opt目录下
  6. apache-tomcat-9.0.16.tar.gz
  7. jdk-8u201-linux-x64.rpm
  8. ?
  9. 3. #安装JDK
  10. rpm -ivh jdk-8u201-linux-x64.rpm
  11. ?
  12. 4. #修改换将变量配置文件
  13. vim /etc/profile
  14. export JАVA_HOME=/usr/java/jdk1.8.0_201-amd64
  15. export CLASSPATH=$JАVA_HOME/lib/tools.jar:$JАVA_HOME/lib/dt.jar
  16. export PATH=$JАVA_HOME/bin:$PATH
  17. ?
  18. 5. #刷新配置文件
  19. source /etc/profile
  20. ?
  21. 6. #切换至/opt下,解压tomcat包
  22. cd /opt
  23. tar -zxf apache-tomcat-9.0.16.tar.gz
  24. ?
  25. 7. #将解压后的包拷贝至/usr/local/下并重命名
  26. cp -r apache-tomcat-9.0.16 /usr/local/tomcat
  27. ?
  28. 8. #添加用户设置属主属组
  29. useradd -s /sbin/nologin tomcat
  30. chown tomcat:tomcat /usr/local/tomcat -R
  31. ?
  32. ?
  33. 9. #新建服务文件
  34. vim /etc/systemd/system/tomcat.service
  35. [Unit]
  36. Description=Tomcat
  37. #After=syslog.target network.target remote-fs.target nss-lookup.target
  38. After=syslog.target network.target
  39. ?
  40. [Service]
  41. Type=forking
  42. ExecStart=/usr/local/tomcat/bin/startup.sh
  43. ExecStop=/usr/local/tomcat/bin/shutdown.sh
  44. RestartSec=3
  45. PrivateTmp=true
  46. User=tomcat
  47. Group=tomcat
  48. ?
  49. [Install]
  50. WantedBy=multi-user.target
  51. ?
  52. 10. #重新加载服务,并开启,查看是否成功启动
  53. ?
  54. systemctl daemon-reload
  55. systemctl start tomcat
  56. ss -ntap |grep 8080
  57. ?
  58. ?
  59. ?
  60. #############新建动态页面站点###########3
  61. ?
  62. 11. #切换至webAPP下,新建test目录
  63. cd /usr/local/tomcat/webapps/
  64. mkdir test
  65. ?
  66. 12. #建立动态页面文件
  67. vim test/index.jsp
  68. <%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
  69. <html>
  70.   <head>
  71. ? ? <title>JSP test1 page </title>
  72.   </head>
  73.   <body>
  74. ? ? <% out.println(“动态页面1,http://www.test1.com”);%>
  75.   </body>
  76. </html>
  77. ?
  78. 13. #修改主配置文件
  79. vim /usr/local/tomcat/conf/server.xml
  80. 删除原来的站点模块
  81. 添加
  82. <Host name=”localhost” appBase=”webapps”
  83. ? ? ? ? ? ?unpackWARs=”true” autoDeploy=”true” xmlValidation=”false”
  84. ? ? ? ? ? ?xmlNamespaceAware=”false”>
  85. ? ? ? ? ? ? ?  <Context docBase=”/usr/local/tomcat/webapps/test”
  86. ? ? ? ? ? ? ? ?path=”” reloadable=”true” />
  87. ? ?  </Host>
  88. ?
  89. ?
  90. 14. #重启服务,并在网页测试
  91. systemctl restart tomcat.service
  92. http://192.168.59.105:8080/

复制代码 关闭防火墙

切换至/opt,将安装 Tomcat 所需软件包传到/opt目录下

安装JDK

修改换将变量配置文件

刷新配置文件

切换至/opt下,解压tomcat包

将解压后的包拷贝至/usr/local/下并重命名

添加用户设置属主属组

新建服务文件

重新加载服务,并开启,查看是否成功启动

切换至webapp下,新建test目录

建立动态页面文件

修改主配置文件

重启服务,并在网页测试

2.3部署第二台Tomcat

  1. 1. #关闭防火墙
  2. systemctl stop firewalld
  3. setenforce 0
  4. ?
  5. 2. #切换至/opt,将安装 Tomcat 所需软件包传到/opt目录下
  6. apache-tomcat-9.0.16.tar.gz
  7. jdk-8u201-linux-x64.rpm
  8. ?
  9. 3. #安装JDK
  10. rpm -ivh jdk-8u201-linux-x64.rpm
  11. ?
  12. 4. #修改环境变量配置文件
  13. vim /etc/profile
  14. export JАVA_HOME=/usr/java/jdk1.8.0_201-amd64
  15. export CLASSPATH=$JАVA_HOME/lib/tools.jar:$JАVA_HOME/lib/dt.jar
  16. export PATH=$JАVA_HOME/bin:$PATH
  17. ?
  18. 5. #刷新配置文件
  19. source /etc/profile
  20. ?
  21. 6. #切换至/opt下,解压tomcat包
  22. cd /opt
  23. tar -zxf apache-tomcat-9.0.16.tar.gz
  24. ?
  25. 7. #将解压后的包拷贝至/usr/local/下并重命名
  26. cp -r apache-tomcat-9.0.16 /usr/local/tomcat
  27. ?
  28. 8. #添加用户设置属主属组
  29. useradd -s /sbin/nologin tomcat
  30. chown tomcat:tomcat /usr/local/tomcat -R
  31. ?
  32. ?
  33. 9. #新建服务文件
  34. vim /etc/systemd/system/tomcat.service
  35. [Unit]
  36. Description=Tomcat
  37. #After=syslog.target network.target remote-fs.target nss-lookup.target
  38. After=syslog.target network.target
  39. ?
  40. [Service]
  41. Type=forking
  42. ExecStart=/usr/local/tomcat/bin/startup.sh
  43. ExecStop=/usr/local/tomcat/bin/shutdown.sh
  44. RestartSec=3
  45. PrivateTmp=true
  46. User=tomcat
  47. Group=tomcat
  48. ?
  49. [Install]
  50. WantedBy=multi-user.target
  51. ?
  52. 10. #重新加载服务,并开启,查看是否成功启动
  53. ?
  54. systemctl daemon-reload
  55. systemctl start tomcat
  56. ss -ntap |grep 8080
  57. ?
  58. ?
  59. ?
  60. #############新建动态页面站点###########3
  61. ?
  62. 11. #切换至webapp下,新建test目录
  63. cd /usr/local/tomcat/webapps/
  64. mkdir test
  65. ?
  66. 12. #建立动态页面文件
  67. vim test/index.jsp
  68. <%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
  69. <html>
  70.   <head>
  71. ? ? <title>JSP test2 page </title>
  72.   </head>
  73.   <body>
  74. ? ? <% out.println(“动态页面2,http://www.test2.com”);%>
  75.   </body>
  76. </html>
  77. ?
  78. 13. #修改主配置文件
  79. vim /usr/local/tomcat/conf/server.xml
  80. 删除原来的站点模块
  81. 添加
  82. <Host name=”localhost” appBase=”webapps”
  83. ? ? ? ? ? ?unpackWARs=”true” autoDeploy=”true” xmlValidation=”false”
  84. ? ? ? ? ? ?xmlNamespaceAware=”false”>
  85. ? ? ? ? ? ? ?  <Context docBase=”/usr/local/tomcat/webapps/test”
  86. ? ? ? ? ? ? ? ?path=”” reloadable=”true” />
  87. ? ?  </Host>
  88. ?
  89. ?
  90. 14. #重启服务,并在网页测试
  91. systemctl restart tomcat.service
  92. http://192.168.59.105:8080/

复制代码 关闭防火墙

切换至/opt,将安装 Tomcat 所需软件包传到/opt目录下

安装JDK

修改环境变量配置文件

刷新配置文件

切换至/opt下,解压tomcat包

将解压后的包拷贝至/usr/local/下并重命名

添加用户设置属主属组

新建服务文件

重新加载服务,并开启,查看是否成功启动

切换至webapp下,新建test目录

建立动态页面文件

修改主配置文件

重启服务,并在网页测试

2.4nginx 配置

准备静态页面和图片

  1. 1. #切换至/usr/local/nginx/html/目录下
  2. cd /usr/local/nginx/html/
  3. ?
  4. 2. #创建test文件夹,并在里面创建静态网页
  5. mkdir test
  6. cd test
  7. vim test.html
  8. this is static test web !!
  9. ?
  10. 3. #拖一张图片至test下改名为1.jpg
  11. mv 1.jfif 1.jpg
  12. ?
  13. 4. #配置主配置文件
  14. vim /usr/local/nginx/conf/nginx.conf
  15. ?
  16. #配置负载均衡服务器列表,weight参数表示权重,权重越高,被分配到的概率越大 ?
  17. #gzip  on; ?
  18. ?  upstream tomcat_server {
  19. ? ? ? ? ? ? ? ? ?  server 192.168.59.105:8080 weight=1;
  20. ? ? ? ? ? ? ? ? ?  server 192.168.59.118:8080 weight=1;
  21. ? ? ? ? ? ? ? ?
  22. ? ? ? ? ? ? ? ? ?  }
  23. ? ? ? ? ? ? ? ? ? ?
  24. ? ? ? ? ? ? ? ? ? ?
  25. #动静分离
  26. location ~ .*.jsp$ {
  27. ? ? ? ?  proxy_pass http://tomcat_server;
  28. ? ? ? ?  proxy_set_header HOST $host;
  29. ? ? ? ?  proxy_set_header X-Real-IP $remote_addr;
  30. ? ? ? ?  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  31. ? ? }
  32. ?
  33. #静态图片正则
  34. ? ? ? ? location ~* .*.(jpg|html|png|gif)$ {
  35. ? ? ? ? root /usr/local/nginx/html/test;
  36. ? ? }
  37. ?
  38. ?
  39. ? ? ? ? location / {
  40. ? ? ? ? ?  root ? html;
  41. ? ? ? ? ?  index  index.html index.htm;
  42. ? ? }
  43. ?
  44. ?
  45. ?
  46. 5. ?#重启nginx并测试
  47. http://192.168.59.108/1.jpg
  48. http://192.168.59.108/test.html

复制代码 切换至cd /usr/local/nginx/html/目录下

创建test文件夹,并在里面创建静态网页

拖一张图片至test下

配置主配置文件

重启nginx并测试

到此这篇关于Tomcat多实例与负载均衡的文章就介绍到这了,更多相关Tomcat多实例与负载均衡内容请搜索共生网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持共生网络!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/108323.html

联系我们