Nginx+Tomcat 动静分离

本文介绍了如何使用Nginx作为负载均衡器与Tomcat结合,实现动静分离。Nginx处理静态资源,动态请求通过proxy_pass转发至Tomcat服务器集群,提高网站并发处理能力。详细步骤包括Nginx和Tomcat的部署,以及Nginx配置文件的调整,最终通过验证确保负载均衡生效。
摘要由CSDN通过智能技术生成

目录

前言

一、案例概述

二、Nginx

三、环境部署​

三、部署 Nginx 负载均衡器

四、部署 2 台 Tomcat 应用服务器

1.安装 JDK ,配置环境

2.Tomcat 服务器1配置

3. Tomcat 服务器2配置

五、Nginx server 配置

六、验证结果

总结


前言

  • 通常情况下,一个 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等情况,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案

  • Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 5000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低

    目前很多大型网站都应用 Nginx 服务器作为后端网站的反向代理及负载均衡器,来提升整个站点的负载并发能力

一、案例概述

  • 案例由 Nginx 作为负载均衡器,Tomcat 作为应用服务器的负载集群的设置方法,

Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发
但是不是把所有的web请求转发,而是将静态页面请求Nginx服务器自己来处理,动态页面请求则转发给后端的Tomcat服务器来处理但据我们所知,Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器,然后通过Nginx配置权重来进行挑选Tomcat服务器去进行处理,负载均衡的一种策略

二、Nginx

Nginx 服务器:

  1. 首页使用精准匹配
  2. 静态页面使用正则匹配自己处理
  3. 动态页面使用正则匹配jsp结尾的请求,使用proxy_pass转发给Tomcat服务器

Nginx 静态处理优势

  1. Nginx处理静态页面的效率远高于Tomcat的处理能力
  2. 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
  3. Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3 .6M
  4. Nginx处理静态资源的能力是Tomcat处理的6倍

Nginx动静分离原理:

  1. 服务端接收来自客户端的请求中,既有静态资源也有动态资源
  2. 静态资源有Nginx提供服务
  3. 动态资源Nginx转发至后端

 

 Nginx配置反向代理的主要参数:

配置后端服务器池,以提供响应数据
upstream 服务器名 {}

配置将访问请求转发给后端服务器池名
proxy_pass http://服务器名

三、环境部署

 

  • 关闭防火墙,关闭开机自启

 

[root@localhost ~]#systemctl stop firewalld.service            #关闭防火墙及开机自启功能
[root@localhost ~]#systemctl status firewalld.service
[root@localhost ~]#setenforce 0								#关闭安全增强系统

三、部署 Nginx 负载均衡器

  • 安装 Nginx 服务,这里用的一键部署脚本
    #!/bin/bash
    iptables -F
    yum -y install epel-release && yum clean all && yum makecache
    yum -y install pcre-devel zlib-devel gcc gcc-c++ make wget
    useradd -M -s /sbin/nologin nginx
    wget http://nginx.org/download/nginx-1.12.2.tar.gz -P /opt
    tar zxvf /opt/nginx-1.12.2.tar.gz -C /opt
    cd /opt/nginx-1.12.2
    
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module
    
    cd /opt/nginx-1.12.2
    make -j 4 && make install
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
    
    cat > /usr/lib/systemd/system/nginx.service <<EOF
    [Unit]
    Description=nginx
    After=network.target
    [Service]
    Type=forking
    PIDFile =/usr/local/nginx/logs/nginx.pid
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecrReload=/bin/kill -s HUP $MAINPID
    ExecrStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
    EOF
    
    chmod 754 /usr/lib/systemd/system/nginx.service
    s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值