Nginx+Tomcat负载均衡、动静分离群集解析

Tomcat 和 Nginx

Tomcat重要目录

目录作用
bin存放启动和关闭Tomcat脚本
conf存放Tomcat不同的配置文件
doc存放Tomcat文档
lib存放Tomcat运行需要的库文件
logs存放Tomcat执行时的LOG文件
src存放Tomcat的源代码
webappsTomcat的主要Web发布目录
work存放jsp编译后产生的class文件

Nginx应用

Nginx是一款非常优秀的HTTP服务器软件

支持高达50 000个并发连接数的响应
拥有强大的静态资源处理能力
运行稳定
内存、CPU等系统资源消耗非常低

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

Nginx负载均衡实现

原理

在这里插入图片描述
Nginx配置反向代理的主要参数

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

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

Nginx动静分离

动静分离原理

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源(音频,图片等)由Nginx提供服务,动态资源Nginx转发至后端( tomcat等)

Nginx静态处理优势

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

部署解析

Nginx+Tomcat负载均衡,动静分离群集

以Nginx作为负载均衡器,Tomcat作为应用服务器

Tomcat部署与测试网站搭建

要求部署两台后端Tomcat服务器
为了进行测试,搭建两个内容不同的网站
Tomcat部署与网站搭建步骤

 关闭firewalld防火墙
 安装JDK,配置JAVA环境
 安装配置Tomcat
 创建/web/webapp1目录,修改server.xml,将网站文件目录更改到/web/webapp1/路径下
/web/webapp1/下建立测试页面index.jsp,并进行测试

Nginx配置负载均衡、动静分离

在Nginx服务器上安装Nginx,反向代理两个Tomcat站点,并实现负载均衡

关闭Firewalld防火墙
安装Nginx依赖软件包
解压并编译安装Nginx
配置nginx.conf,添加location静态页面处理及添加upstream配置段与proxy pass
检测配置文件与启动Nginx
测试负载均衡、动静分离效果

部署环境

Nginx1:192.168.1.10
Nginx2:192.168.1.11
Tomcat1:192.168.1.12
Tomcat2:192.168.1.13
nfs:192.168.1.15

NFS配置

mkdir /web1
mkdir /web2
cd /web1
vi index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>Chen</title>
</head>
<body>
<% out.println("this is web");%>
<div>动态页面</div><br/><img src="1.jpg" />
</body>
</html>

cp index.jsp /web2  
 cd /web2
 vi index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<html>
<head>
<title>Chen</title>
</head>
<body>
<% out.println("this is web");%>
<div>动态页面</div><br/><img src="1.jpg" />
</body>
</html>

设置共享目录

vi /etc/exports
systemctl start nfs
systemctl start rpcbind
showmount -e

在这里插入图片描述

Tomcat 配置

Tomcat1
解压

tar zxvf jdk-8u91-linux-x64.tar.gz
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile  最后加
source /etc/profile

验证 Java 环境是否正则工作
编写脚本

vi a.java
public class a {
    public static void main (String[] args) {
           System.out.println("Chen!");
    }
}

在这里插入图片描述

测试是否正常

javac a.java 
java a

在这里插入图片描述
安装tomcat
tomcat1上

tar zxvf apache-tomcat-8.5.16.tar.gz
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
mkdir /webapp1
mount 192.168.1.15:/web1 /webapp1/

修改 Tomcat 配置文件站点目录

vi /usr/local/tomcat8/conf/server.xml 

在这里插入图片描述

链接

ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown..sh /usr/bin/tomcatdown
tomcatup

本机访问测试

在这里插入图片描述
Tomcat2

tar zxvf jdk-8u91-linux-x64.tar.gz 
mv jdk1.8.0_91/ /usr/local/java
vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre

在这里插入图片描述

source /etc/profile

验证 Java 环境是否正则工作
编写脚本

vi a.java
public class a {
    public static void main (String[] args) {
           System.out.println("Chen!");
    }
}
javac a.java 
java a

在这里插入图片描述

安装 Tomcat

tar zxvf apache-tomcat-8.5.16.tar.gz 
mv apache-tomcat-8.5.16/ /usr/local/tomcat8
mkdir /webapp2
mount 192.168.1.15:/web2 /webapp2/
vi /usr/local/tomcat8/conf/server.xml

在这里插入图片描述

链接

ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
ln -s /usr/local/tomcat8/bin/shutdown..sh /usr/bin/tomcatdown
tomcatup 

本机访问测试

在这里插入图片描述

Nginx 调度器配置

Nginx1和2一样的
安装 Nginx

tar zxvf nginx-1.13.7.tar.gz

创建不可登录用户

useradd -M -s /usr/sbin/nologin nginx

安装 Nginx 所需依赖包

yum -y install pcre-devel zlib-devel

编译安装

cd nginx-1.13.7/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install

设置 Tomcat 池

vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

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

在这里插入图片描述

访问
在这里插入图片描述

在这里插入图片描述

Keepalived 配置

Nginx1—Keepalived
安装 Keepalived

tar zxvf keepalived-2.0.13.tar.gz 
yum -y install popt-devel kernel-devel openssl-devel
cd keepalived-2.0.13/
./configure --prefix=/
make && make install
cp keepalived/etc/init.d/keepalived /etc/init.d/
vi /etc/init.d/keepalived
chkconfig: 35 20 70	

在这里插入图片描述

chmod 755 /etc/init.d
chkconfig --add /etc/init.d/keepalived 
systemctl enable keepalived       
vi /etc/keepalived/keepalived.conf
global_defs {
     router_id nginx1
}
vrrp_script chk_http_port {
     script "/usr/local/src/nginx.sh"
     interval 2
     weight 2
}
vrrp_instance vi_1 {
     state MASTER
     interface ens33
     virtual_router_id 51
     priority 110
     adver_int 1
     authentication {
         auth_type PASS
         auth_pass 1111
}
track_script {
     chk_http_port
}
virtual_ipaddress {
      192.168.1.200
}
}
scp /etc/keepalived/keepalived.confroot@192.168.1.11:/etc/keepalived/keepalived.conf

vi /usr/local/src/nginx.sh
	#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ]
then /usr/local/nginx/sbin/nginx
   if [ `ps -C nginx --no-header | wc -l` -eq 0 ]
   then  exit  1
   else  exit  0
   fi
else
   exit 0
fi
scp /usr/local/src/nginx.sh root@192.168.1.11:/usr/local/src
chmod +x /usr/local/src/nginx.sh
systemctl start keepalived

网页测试
http://192.168.1.200
在这里插入图片描述
http://192.168.1.200/index.jsp
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值