群集架构----Nginx负载均衡与Tomcat群集

一: 负载均衡技术

1、引入负载均衡技术

负载均衡技术 (load blance) 是一种概念 把资源的使用进行平均分配。

负载均衡:分发流量、请求到不同的服务器。使流量平均分配(理想的状态的)

作用:

服务器容灾 流量分发

主要作用:

①流量分发 请求平均 降低单例压力

其他作用:

②安全 隐藏后端真实服务

③屏蔽非法请求(七层负载均衡)

2、负载均衡分类

-mark

1)二层负载均衡(mac)

根据OSI模型分的二层进行负载,一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后,再分配后端实际的MAC地址响应

**2)三层负载均衡(ip) **

一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后,再分配后端实际的IP地址响应

3)四层负载均衡(tcp) 网络运输层面的负载均衡

在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器

4)七层负载均衡(http) 智能型负载均衡

根据虚拟的url或IP,主机接收请求,再转向(反向代理)相应的处理服务器

3、常见实现方式

实现方式分类:

①软件级别 性价比高 可控性强

②硬件级别 性能好 价格高 几万到几十万不等

硬件是实现方式:

F5 BIG-IP 四层和七层

软件实现方式:

OSI分层实现方式
七层Nginx、HAProxy
四层LVS、HAProxy、Nginx(1.9版本后)

mark

四层和七层对比:

mark

二.Nginx负载均衡实验分析

  • 通常,一个tomcat站点由于可能出现单点故障以及无法应付过多的客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善web站点架构
  • Nginx是一款性能优越的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理以及负载均衡器,来提升整个站点的负载并发能力

三.网络拓扑图以及实验环境

mark

类型IP地址系统软件包
Nginx服务器192.168.100.140centos7nginx-1.12.2.tar.gz
Tomcat服务器1192.168.100.150centos7apache-tomcat-8.5.16.tar.gz;jdk-8u91-linux-x64.tar.gz
Tomcat服务器2192.168.100.160centos7apache-tomcat-8.5.16.tar.gz;jdk-8u91-linux-x64.tar.gz
客户机192.168.100.10Windows10

四.具体操作步骤以及验证

  • Tomcat01配置

    1.解压jdk的压缩包
    systemctl stop firewalld
    setenforce 0 
    tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
    
    2.配置Java环境变量
    vim /etc/profile
    '添加'
    export JAVA_HOME=/usr/local/jdk1.8.0_91
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    3.加载 JAVA环境变量
    source /etc/profile
    
    4.解压Tomcat软件包
    tar zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local
    
    5.修改目录名,便于操作
    cd /usr/local
    mv apache-tomcat-8.5.16/ tomcat
    6.创建软链接,优化服务控制方式
    ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
    ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
    
    7.创建web站点,编辑站点内容,加入测试页面
    mkdir -pv /web/webapp1
    vim /web/webapp1/index.jsp
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
     <head>
      <title>JSP test1 page</title>
     </head>
     <body>
      <% out.println("Welcome Tomcat 01");%>
     </body>
    </html>
    
    8.修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立的/web/webapp1,在hos段增加context段
    [root@tomcat01 ~]# vim /usr/local/tomcat/conf/server.xml
    //148行
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>
     //注解:docBase: web应用的文档基准目录
    reloadable设置监视“类”是否变化
    path=""设置默认“类”
    
    9.关闭安全性功能,开启服务
    startup.sh 
    systemctl stop firewalld
    setenforce 0
    
  • Tomcat02配置,与01的配置大体相同,index.jsp首页定义的输出Welcome Tomcat 02 这里不同,以示区分

    1.解压jdk的压缩包
    tar xzvf jdk-8u231-linux-x64.tar.gz -C /usr/local
    
    2.配置JAVA环境变量
    vim /etc/profile  //追加到末尾
    export JAVA_HOME=/usr/local/jdk1.8.0_231
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    3.加载JAVA环境变量
    source /etc/profile
    
    4.解压tomcat软件包
    tar xzvf apache-tomcat-8.5.50.tar.gz -C /usr/local
    
    5.修改目录名,便于操作
    cd /usr/local
    mv apache-tomcat-8.5.50/ tomcat/
    
    6.创建软链接,优化服务控制方式
    ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
    ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
    
    7.创建web站点,编辑站点内容
    mkdir -pv /web/webapp1
    vim /web/webapp1/index.jsp
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
     <head>
      <title>JSP test1 page</title>
     </head>
     <body>
      <% out.println("Welcome Tomcat 02");%>
     </body>
    </html>
    ~
    
    8.修改Tomcat的server.xml文件,定义一个虚拟主机,并且将网站文件路径指向已经建立的/web/webapp1,在hos段增加context段
    [root@tomcat02 ~]# vim /usr/local/tomcat/conf/server.xml
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp1" path="" reloadable="false">
            </Context>
     
    9.关闭安全性功能,开启服务
    shutdown.sh
    startup.sh 
    systemctl stop firewalld
    setenforce 0
    
  • Nginx服务器的配置

    1.解压软件包
    tar xzvf nginx-1.12.2.tar.gz -C /opt
    
    2.下载相关软件包
    yum install pcre-devel zlib-devel gcc gcc-c++ make -y
    
    3.创建nginx的用户
    useradd -M -s /sbin/nologin nginx
    
    4.编译安装nginx
    cd /opt/nginx-1.12.2/
    ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx --group=nginx \
    --with-http_stub_status_module \    //启用状态统计
    --with-http_gzip_static_module \    //启用gzip静态压缩
    --with-http_flv_module     //启用flv模块,提供寻求内存使用基于时间的偏移量文件
     
    make && make install
     
    5.编辑nginx的主配置文件
    vim /usr/local/nginx/conf/nginx.conf
     #keepalive_timeout  0;
        keepalive_timeout  65;
        #gzip  on;
        upstream tomcat_server {              //添加upstream函数,配置tomcat服务器池名称自定义,但保证和下面调用名称一致即可
            server 192.168.100.150:8080 weight=1;   //weight代表权重
            server 192.168.100.160:8080 weight=2;
            }
     
        server {
            listen       80;
            server_name  localhost;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
     
            location / {
                root   html;
                index  index.html index.htm;
                proxy_pass http://tomcat_server;    //添加反向代理到设置的tomcat服务器池,这里调用的名称,要和上面生命的函数名一致
            }
    
    		
    6.优化服务控制方式
    ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
     
    7.检查语法,是否配置正确
    [root@nginx ~]# nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@nginx ~]# 
     
    8.关闭安全性功能,开启nginx服务
    systemctl stop firewalld
    setenforce 0
    nginx  				//启用nginx服务
    netstat -ntap | grep nginx
    killall -1 nginx 	//重启nginx服务
    
    9. 页面测试
    访问代理服务器192.168.100.140   多次刷新并查看加权轮询
    

    markmark

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值