服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - Tomcat多实例与负载均衡示例详解

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

2022-08-14 09:30m0_54861649 Tomcat

这篇文章主要介绍了Tomcat多实例与负载均衡,在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境,具体内容详情跟随小编一起看看吧

一、Tomcat多实例

1.1 安装好 jdk

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

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

关闭防火墙

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

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

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

切换至/opt下,安装JDK

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

查看java版本

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

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.  
  8. 3. #将解压后的包拷贝至/usr/local/下并重命名
  9. cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
  10. cp -a apache-tomcat-9.0.16 /usr/local/tomcat/tomcat2

切换至/opt下,解压tomcat包

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

新建文件夹/usr/local/tomcat

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

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

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

1.3 配置 tomcat 环境变量

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

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

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. ?

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

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

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

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

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

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

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

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

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

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

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

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

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

查看是否启动成功

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

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

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

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

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

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

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

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

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

代理给Tomcat

  • LNMT:Linux + Nginx + MySQL + Tomcat

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

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

适合

LNMT:Linux + Nginx + MySQL + Tomcat

  • 多级代理

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/

关闭防火墙

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

安装依赖关系包

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

新建用户和组便于管理

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

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

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

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

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

安装

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

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

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

将nginx命令加入服务

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

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

重新加载单元.启动服务

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

查看是否成功启动

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

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 JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
  15. export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  16. export PATH=$JAVA_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/

关闭防火墙

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

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

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

安装JDK

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

修改换将变量配置文件

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

刷新配置文件

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

切换至/opt下,解压tomcat包

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

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

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

添加用户设置属主属组

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

新建服务文件

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

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

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

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

切换至webapp下,新建test目录

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

建立动态页面文件

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

修改主配置文件

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

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

重启服务,并在网页测试

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

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

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 JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
  15. export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
  16. export PATH=$JAVA_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/

关闭防火墙

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

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

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

安装JDK

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

修改环境变量配置文件

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

刷新配置文件

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

切换至/opt下,解压tomcat包

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

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

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

添加用户设置属主属组

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

新建服务文件

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

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

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

切换至webapp下,新建test目录

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

建立动态页面文件

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

修改主配置文件

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

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

重启服务,并在网页测试

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

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

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/目录下

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

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

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

拖一张图片至test下

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

配置主配置文件

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

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

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

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

重启nginx并测试

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

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

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

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

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

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

原文链接:https://blog.csdn.net/m0_54861649/article/details/124090191

延伸 · 阅读

精彩推荐