文档章节

4.Nginx+Tomcat搭建高性能负载均衡集群

cool210
 cool210
发布于 2017/04/10 13:42
字数 866
阅读 11
收藏 1
点赞 0
评论 0

一、       工具

 

  nginx-1.8.0

  apache-tomcat-6.0.33

 

二、    目标

 

  实现高性能负载均衡的Tomcat集群:

 

  

 

 

三、    步骤

 

  1、首先下载Nginx,要下载稳定版:

 

  

 

 

  2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:

 

  

 

 

  3、然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml:

 

  

 

 

  共需修改3处端口:

 

  

 

 

  当然第二台Tomcat也一样,如下图:

 

  

 

 

  4、然后启动两个Tomcat,并访问,看是否正常:

 

  

  

 

 

 

  5、然后修改上面两个Tomcat的默认页面(为了区分下面到底访问的是那一台Tomcat,随便改一下即可):

 

  

 

 

  改完以后,进行访问,如下图:

 

  

  

 

 

 

  6、OK,现在我们可以开始配置Nginx来实现负载均衡了,其实非常的简单,只需要配置好Nginx的配置文件即可:

 

  

 

 

  配置如下(这里只进行了简单的配置,实际生产环境可以进行更详细完善配置):

 

 

 

  核心配置如下:

 

  

 

 

  到此配置完成,下面开始演示负载均衡。

worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致  
  
events {  
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
}  
  
http {  
    include       mime.types; #文件扩展名与文件类型映射表  
    default_type  application/octet-stream;#默认文件类型  
  
    sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。  
      
    keepalive_timeout  65; #长连接超时时间,单位是秒  
  
    gzip  on;#启用Gizp压缩  
      
    #服务器的集群  
    upstream  netitcast.com {  #服务器集群名字   
        server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
        server    127.0.0.1:28080  weight=2;  
    }     
  
    #当前的Nginx的配置  
    server {  
        listen       80;#监听80端口,可以改成其他端口  
        server_name  localhost;##############   当前服务的域名  
  
    location / {  
            proxy_pass http://netitcast.com;  
            proxy_redirect default;  
        }  
          
  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  

  7、首先,我们启动Nginx:

 

  

 

 

  8、然后我们即可输入:localhost/index.jsp查看运行状况了

 

  第一次访问,发现访问的是Tomcat2上的程序:

 

  

 

 

  然后刷新,访问的还是Tomcat2上的程序:

 

  

 

 

  再刷新,发现变为了Tomcat1上的程序:

 

  

 

 

  再刷新,发现又变为了Tomcat2上的程序:

 

  

 

 

  到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx中配置的两台Tomcat的权重起的作用,如下图:

 

  

 

 

 

四、    总结

 

  谁能想到实现一个高性能的负载均衡集群会如此简单。Nginx的功能如此强大,配置却如此简单,我们还有什么理由拒绝它呢?这比我们动不动就十多万至几十万人民币的F5 BIG-IP、NetScaler等硬件负载均衡交换机廉价了不知多少。此外,大家别忘了Nginx不仅仅是一个反向代理服务器,它本身也可以托管网站,作为Web服务器,进行Http服务处理。

© 著作权归作者所有

共有 人打赏支持
cool210
粉丝 3
博文 28
码字总数 25049
作品 0
赣州
程序员
【Diary Report 2017-12-28】关于FastDFS蛋疼的集群和负载均衡(八)之总结FastDFS

diary_report.jpg Interesting things 这一篇来总结FastDFS集群和负载均衡。 What did you do today FastDFS为互联网量身定制,充分考虑到冗余备份、负载均衡、线性扩容等机制,并注重高可用...

cmazxiaoma ⋅ 2017/12/29 ⋅ 0

Centos 6.8 配置Lvs

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 宗旨:   使用集群技...

chinawxl ⋅ 2017/12/22 ⋅ 0

Linux集群简介以及lvs-nat部署(一)

随着一个公司的不断发展,用户量随之增多,对服务器的负载能力要求也逐渐增高,可采取换购高性能服务器解决负载能力问题,这叫做向上扩展。但扩展硬件终究会达到一个极限,此时便无法满足负载...

从运维开始 ⋅ 2017/10/20 ⋅ 0

Java分布式服务框架Dubbo初探(待实践)

Dubbo是什么? Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,...

easonjim ⋅ 2017/03/07 ⋅ 0

集群架构及常见集群特性介绍

本文部分内容来源以下文章: http://soft.chinabyte.com/25/13169025.shtml http://www.linuxvirtualserver.org/zh/lvs1.html 本篇索引 什么是集群 集群的特点 集群的优势 集群分类 1 什么是...

vincenteve ⋅ 2017/10/21 ⋅ 0

集群应用与实战

集群 什么是集群: — 一组通过高速网络互联的计算组,并以单一系统的模式加以管理 — 将很多服务器集中起来,提供同一中服务,在客户端看来就像是只有一个服务器 — 可以在付出较低成本的情...

Xuenqlve ⋅ 01/15 ⋅ 0

架构师必备词汇和知识点

01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机...

t4i2b10X4c22nF6A ⋅ 2017/11/24 ⋅ 0

WebLogic集群介绍及其简单搭建

目录(?)[-] 引言 负载均衡集群 基于WebLogic的负载均衡集群 WebLogic 集群的工作机制 构建WebLogic集群 Domain和Server 系统实现方案 集群应用的必要条件 系统实现及压力测试 系统故障分析 ...

哈全文 ⋅ 2012/12/31 ⋅ 0

linux教程分享之浅谈linux集群

linux教程 集群其实就是一堆计算机的集合,给用户提供同一个服务的一组计算机,就称之为集群,对于用户而言好像就是一台计算机提供的服务,集群主要分为三大类, LB 负载均衡集群 负载均衡集群主要...

mage_linux02 ⋅ 2014/09/02 ⋅ 1

分布式与集群的联系与区别

一句话概括:分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 例如:如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在...

Max_zhao ⋅ 2017/05/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

x64: TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 ;.MODEL flat,stdcall x64 not su......

simpower ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 昨天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 昨天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 昨天 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 昨天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 昨天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部