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

本文档详细介绍了如何在Linux环境下部署Nginx负载均衡器,通过反向代理实现静态页面由Nginx提供,动态页面由多台Tomcat服务器处理。首先关闭防火墙,安装依赖,然后分别搭建两台Tomcat服务器,并创建动态页面。接着,配置Nginx,设置负载均衡策略,并实现静态资源的分离。最后,通过访问测试验证了配置的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  • 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协议在设计之初没有想到未来的发展。

    一、部署Nginx 负载均衡器

    实验前环境准备:
    nginx:192.168.192.135
    Tomcat1:192.168.192.10
    Tomcat2:192.168.192.136

    1. #关闭防火墙
    systemctl stop firewalld
    setenforce 02. #安装依赖关系包
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make3. #新建用户和组便于管理
    useradd -M -s /sbin/nologin nginx
    ​
    4. #切换至opt目录,将下载好的压缩包传进来解压
    cd /opt
    tar -zxf nginx-1.12.0.tar.gz 
    ​
    4. #切换至解压后的目录下编译
    cd nginx-1.12.0
    ​
    ./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

    1. #关闭防火墙
    systemctl stop firewalld
    setenforce 02. #切换至/opt,将安装 Tomcat 所需软件包传到/opt目录下
    apache-tomcat-9.0.16.tar.gz 
    jdk-8u201-linux-x64.rpm
    ​
    3. #安装JDK
    rpm -ivh jdk-8u201-linux-x64.rpm 
    ​
    4. #修改换将变量配置文件
    vim /etc/profile
    export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export PATH=$JAVA_HOME/bin:$PATH5. #刷新配置文件
    source /etc/profile
    ​
    6. #切换至/opt下,解压tomcat包
    cd /opt
    tar -zxf apache-tomcat-9.0.16.tar.gz 
    ​
    7. #将解压后的包拷贝至/usr/local/下并重命名
    cp -r apache-tomcat-9.0.16 /usr/local/tomcat
    ​
    8. #添加用户设置属主属组
    useradd -s /sbin/nologin tomcat
    chown tomcat:tomcat /usr/local/tomcat -R
    ​
    ​
    9. #新建服务文件
    vim /etc/systemd/system/tomcat.service
    [Unit]
    Description=Tomcat
    #After=syslog.target network.target remote-fs.target nss-lookup.target
    After=syslog.target network.target
    ​
    [Service]
    Type=forking
    ExecStart=/usr/local/tomcat/bin/startup.sh
    ExecStop=/usr/local/tomcat/bin/shutdown.sh
    RestartSec=3
    PrivateTmp=true
    User=tomcat
    Group=tomcat
    ​
    [Install]
    WantedBy=multi-user.target
    ​
    10. #重新加载服务,并开启,查看是否成功启动
    ​
    systemctl daemon-reload
    systemctl start tomcat
    ss -ntap |grep 8080
    ​
    ​
    ​
    #############新建动态页面站点###########311. #切换至webapp下,新建test目录
    cd /usr/local/tomcat/webapps/
    mkdir test12. #建立动态页面文件
    vim test/index.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
      <head>
         <title>JSP test1 page </title>
      </head>
      <body>
         <% out.println("动态页面1,http://www.test1.com");%>
      </body>
    </html>13. #修改主配置文件
    vim /usr/local/tomcat/conf/server.xml
    删除原来的站点模块
    添加
    <Host name="localhost" appBase="webapps"
                unpackWARs="true" autoDeploy="true" xmlValidation="false"
                xmlNamespaceAware="false">
                    <Context docBase="/usr/local/tomcat/webapps/test"
                    path="" reloadable="true" />
          </Host>
    ​
    ​
    14. #重启服务,并在网页测试
    systemctl restart tomcat.service 
    http://192.168.192.10:8080/
    

    在这里插入图片描述

    切换至webapp下,新建test目录

    在这里插入图片描述

    建立动态页面文件

    在这里插入图片描述
    修改主配置文件

    在这里插入图片描述

    在这里插入图片描述
    以同样的方法,部署第二台Tomcat服务器就可以了

    三、nginx 配置静态网页

    准备静态页面和图片

    1. #切换至/usr/local/nginx/html/目录下
    cd /usr/local/nginx/html/
    ​
    2. #创建test文件夹,并在里面创建静态网页
    mkdir test
    cd test
    vim test.html
    this is static test web !!3. #拖一张图片至test下
    game.jpg
    ​
    4. #配置主配置文件
    vim /usr/local/nginx/conf/nginx.conf
    ​
    #配置负载均衡服务器列表,weight参数表示权重,权重越高,被分配到的概率越大  
    #gzip  on;  
        upstream tomcat_server {
                        server 192.168.192.10:8080 weight=1;
                        server 192.168.192.136:8080 weight=1;
                     
                        }
                        
                        
    #动静分离
     location ~ .*\.jsp$ {
              proxy_pass http://tomcat_server;
              proxy_set_header HOST $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }#静态图片正则
             location ~* .*\.(jpg|html|png|gif)$ {
             root /usr/local/nginx/html/test;
         }
    ​
    ​
             location / {
                root   html;
                index  index.html index.htm;
         }
    ​
    ​
    ​
    5.  #重启nginx并测试
    http://192.168.192.135/game.jpg
    http://192.168.192.135/test.html
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值