• Tomcat多实例部署和动静分离


    一、多实例部署:

       多实例:多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

      1.前期准备:

    1. 1.关闭防火墙:
    2. systemctl stop firewalld.service
    3. setenforce 0
    4. 2.准备安装包
    5. 3.安装jdk:
    6. rpm -ivh jdk-8u201-linux-x64.rpm
    7. 4.部署两个tomcat:
    8. mv apache-tomcat-9.0.16 /usr/local/tomcat1
    9. cp -a /usr/local/tomcat1/ /usr/local/tomcat2

     2.配置tomcat环境变量:

    1. vim /etc/profile.d/tomcat.sh
    2. #tomcat1
    3. export CATALINA_HOME1=/usr/local/tomcat1
    4. export CATALINA_BASE1=/usr/local/tomcat1
    5. export TOMCAT_HOME1=/usr/local/tomcat1
    6. #tomcat2
    7. export CATALINA_HOME2=/usr/local/tomcat2
    8. export CATALINA_BASE2=/usr/local/tomcat2
    9. export TOMCAT_HOME2=/usr/local/tomcat2
    10. source /etc/profile.d/tomcat.sh ##刷新配置

    3.更改端口号:

      修改 tomcat2 中的 server.xml 文件,各 tomcat 实例配置不能有重复的端口号

    1. 22行,修改Server prot,默认为8005 -> 修改为8006
    2. 69行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8081
    3. 116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

    4.更改启动、关闭脚本的环境变量:

    1. tomcat1:
    2. vim /usr/local/tomcat1/bin/startup.sh
    3. export CATALINA_BASE=$CATALINA_BASE1
    4. export CATALINA_HOME=$CATALINA_HOME1
    5. export TOMCAT_HOME=$TOMCAT_HOME1
    6. vim /usr/local/tomcat1/bin/shutdown.sh
    7. export CATALINA_BASE=$CATALINA_BASE1
    8. export CATALINA_HOME=$CATALINA_HOME1
    9. export TOMCAT_HOME=$TOMCAT_HOME1
    10. tomcat2:
    11. vim /usr/local/tomcat2/bin/startup.sh
    12. export CATALINA_BASE=$CATALINA_BASE2
    13. export CATALINA_HOME=$CATALINA_HOME2
    14. export TOMCAT_HOME=$TOMCAT_HOME2
    15. vim /usr/local/tomcat2/bin/shutdown.sh
    16. export CATALINA_BASE=$CATALINA_BASE2
    17. export CATALINA_HOME=$CATALINA_HOME2
    18. export TOMCAT_HOME=$TOMCAT_HOME2

     5.启动tomcat:

     6.测试: 

    二、动静分离:


    1.实验背景:


    Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
    Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

    2.地址分配:


    (1)代理服务器(Nginx):
         192.168.88.100

    作为前端,处理静态请求,响应静态页面
    将动态请求转发到后端,由后端Toncat处理
    动态请求的负载均衡
    (2)Tomcat服务器:
    192.168.88.103:8080  192.168.88.103:8081  192.168.88.104:8080 

       作为后端,处理动态请求 

    3.配置tomcat:

    1. tomcat 8080
    2. #添加jsp界面
    3. vim /usr/local/tomcat1/webapps/www/index.jsp
    4. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    5. <head>
    6. JSP test1 page
    7. <% out.println("动态页面 1,192.168.88.103:8080");%>
    8. #配置主机访问路径
    9. vim /usr/local/tomcat1/conf/server.xml
    10. "localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
    11. xmlValidation="false" xmlNamespaceAware="false">
    12. "/usr/local/tomcat1/webapps/www" path="" reloadable="true" />
    13. tomcat 8081
    14. vim /usr/local/tomcat2/webapps/www/index.jsp
    15. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    16. <head>
    17. JSP test2 page
    18. <% out.println("动态页面 2,192.168.88.103:8081");%>
    19. vim /usr/local/tomcat2/conf/server.xml
    20. "localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
    21. xmlValidation="false" xmlNamespaceAware="false">
    22. "/usr/local/tomcat2/webapps/www" path="" reloadable="true" />
    23. tomcat 192.168.88.104:8080 同上
    24. #配置完成后重启服务
    25. shutdown.sh startup.sh

    4.配置nginx动静分离:

        4.1 在http块中配置服务器组:

    1. upstream www {
    2. server 192.168.88.103:8080;
    3. server 192.168.88.103:8081;
    4. server 192.168.88.104:8080;
    5. }

     4.2 配置动态静态请求的location:

    1. ##访问以jsp结尾的url时代理到动态服务器组
    2. location ~ .*\.jsp$ {
    3. proxy_pass http://www;
    4. proxy_set_header HOST $host;
    5. proxy_set_header X-Real-IP $remote_addr;
    6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    7. #ip透穿
    8. }
    9. ##访问静态图片就用nginx本机处理:
    10. location ~ .*\.(jpg|png) {
    11. root /apps/nginx/html;
    12. }
    13. nginx -s reload ##刷新配置文件
    14. etails/132823010

  • 相关阅读:
    java字符集(编码与解码)--计算机翻译官
    matlab数学建模方法与实践 笔记汇总
    51单片机中断和定时的结合应用
    VS_QT_3_CMakeLists编辑
    模拟实现跨平台方案原理之双线程架构方案
    金仓数据库KingbaseES服务器应用参考手册--9. sys_test_fsync
    微信小程序 | 微信公众平台SpringBoot开发实例 │ 开发一个简易的个人微信公众号
    第五章 数据分析模型 题目学习(40%)
    【云原生之k8s】K8s 管理工具 kubectl 详解(三)
    hystrix详解
  • 原文地址:https://blog.csdn.net/OuOOutlier_/article/details/133068053