nginx+tomcat实现负载均衡以及双机热备
还记得那些年吗?
还记得更新代码之后,服务器起不来被领导训斥吗?还记得更新代码,需要停机过多的时间被渠道部们埋怨吗?还记得更新代码,代码出错时自己吓个半死吗?于是我们聪明勤快的程序员,看着电影待到夜深人静的时候;爬起来有条不紊的更新着代码,以保证明天大家一觉醒来打开网站,完美的呈现给用户。 看似非常的完美,但是代码更新频繁的时候,我们也吃不消;并且我们在停机更新的时候带来的影响。
你听过「灾备」、「异地多活」、「双机热备」这些词么?
大家都知道「不能把鸡蛋放在一个篮子里」,在我们开发中依然是如此,如果是稍微对系统数据及运行状态有要求的项目,千万可不能突然系统挂掉几分钟,这带来的后果是不可想象的。所以,在我们开发中就会有「灾备」这个词,我们要考虑到这些不可预防的事件发生,所以,往往我们会把系统部署到多台服务器上面,这就是「鸡蛋」的例子,也就是所谓的「双机热备」,以保证我们系统的高可用,当一个服务器挂掉,后边的这个完全有能力顶上去!就好像一个程序员你感觉他天天没什么事儿可干,非常气愤的去找你领导说:xxx 天天没事干,为什么他工资比我高?呵呵呵...
nginx+tomcat实现负载均衡以及双机热备
由于服务器资源有限,我们就做本地测试;
实现的原理:
利用nginx的反向代理将我们配置好的应用池根据某种规则去访问。nginx分配tomcat请求的比例有四种,分别是轮询(默认),权重(红框所示)权重分配的越高,访问的承载量越大,第三种分配方式是根据ip分配;最后一种是第三方分配。我的配置文件用的是权重的分配方式。
nginx代码段
准备如下nginx代码段将其添加到nginx的/etc/nginx/conf.d/default.conf中, 模拟方式很简单,通过down来表示流量为零(nginx中无法将weight设置为零),开始的时候100%的流量都发到蓝色版本。
http {
upstream nginx_blug_green {
server 127.0.0.1:8080 weight=100;
server 127.0.0.1:8081 down;
}
server {
listen 8082;
server_name localhost;
location /callcenter-api {
#root html;
#index index.html index.htm;
proxy_pass http://nginx_blug_green;
}
}
因为我这边服务器有限,装了两个Tomcat来模拟两个服务器的;安装完成之后开始配置我们的tomcat文件夹/conf/server.xml文件,如下所示



更改这三个端口号,防止出现运行多个tomcat会出现端口号被占用的问题。
tomcat和nginx的配置完成后把要运行项目的war包放到tomcat的webapps的文件夹下(在两个tomcat的项目里做一个标识,显示当前的端口号为多少),在tomcat的bin文件夹下运行startup.bat文件,启动tomcat,tomcat启动成功之后,使用dos命令启动我们的nginx,然后打开浏览器进行测试
运行nginx;
1.cd /usr/local/nginx; 2 ./nginx;
等待nginx启动完成;
假设我们要更新代码场景: 只需将8080端口设置为down,将所有流量走8081;此时并不会停机。
upstream nginx_blug_green {
server 127.0.0.1:8080 down;
server 127.0.0.1:8081 weight=100;
}
nginx平滑重启
./nginx -s reload
访问 :http://localhost:8082/callcenter-api/sys/login
温馨提示:如果在访问时出现:

原因是在nginx配置文件中配置upstream时用了“_”字符,如上用的tomcat_server,直接报错了。改成tomcatserver,即不使用“_”字符就好了。主要还是版本原因,tomcat7就不会有这个问题
nginx+tomcat实现负载均衡以及双机热备的更多相关文章
- Keepalived+Nginx提供前端负载均衡+主从双机热备+自动切换
原文链接:http://unun.in/linux/156.html 方案: 采用两台Nginx服务器作为前端,提供静态web内容,分发web请求,一主一从,Keepalived实现状态监测,保证 N ...
- Nginx+Tomcat+Memcached负载均衡集群服务搭建
操作系统:CentOS6.5 本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...
- nginx+tomcat+redis负载均衡及session共享
概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...
- 使用 Nginx + Tomcat 搭建负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance, ...
- Docker + Nginx + Tomcat 实现负载均衡简单演示
Docker + Nginx + Tomcat 实现负载均衡 环境 [root@pinyoyougou-docker ~]# docker -v Docker version 1.12.6, buil ...
- Ubuntu下实现Nginx+Tomcat实现负载均衡
先说一下为什么写这个文章,在性能测试过程中,我们可能会关注很多指标,比如CPU.IO.网络.磁盘等,通过这些指标大致可以判断哪个环节遇到了性能瓶颈,但是当这些指标无法判断出性能瓶颈时,我们可能就需要对 ...
- 简单的 Nginx+Tomcat 配置负载均衡集群
简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...
- Nginx+Tomcat 实现负载均衡 ,动静分离集群部署
Nginx + Tomcat 实现负载均衡,动静分离集群部署 1.Nginx实现负载均衡原理 2.Nginx配置反向代理主要参数 3.实验 1.Nginx实现负载均衡原理: Nginx服务器作为前端, ...
- Nginx+Tomcat搭建负载均衡
一. 工具 nginx-1.8.0 apache-tomcat-6.0.33 二. 目标 实现高性能负载均衡的Tomcat集群: 三. 步骤 1.首先下载Nginx,要下载稳定 ...
随机推荐
- ldap客户端工具ldap admin tool
官网下载:非免费软件,自己破解 http://www.ldapbrowsermac.com/
- bash小结
context:CentOS 什么是shell? shell就是与计算机交互的接口. linux支持的shell [root@node1 ~]# cat /etc/shells /bin/sh #被 ...
- DB2的web可视化客户端工具
DB2 是IBM公司的产品,目前在银行等金融行业还在大量使用, DB2的客户端工具太,并且难用,这是一直为人所垢病的, 现在TreeSoft数据库管理系统已支持DB2了,直接在浏览器中就可以操作查看 ...
- Flutter dio伪造请求头获取数据
在很多时候,后端为了安全都会有一些请求头的限制,只有请求头对了,才能正确返回数据.这虽然限制了一些人恶意请求数据,但是对于我们聪明的程序员来说,就是形同虚设.下面就以极客时间为例,讲一下通过伪造请求头 ...
- QFramework 使用指南 2020(八):Res Kit(2)模拟模式与非模拟模式
在上一篇,介绍了 Res Kit 的基本使用,相信大家已经体会到了 Res Kit 的简便之处了. 在这一篇,我们试着探讨一下 Res Kit 的设计背后原理. AssetBundle 的不便之处 在 ...
- JAVA计算字符串UTF-8字节数
String str = "C++/C#/JAVA软件开发"; try { System.out.println(str.getBytes("UTF-8").l ...
- VMware Windows Server 2008 R2 X64 虚拟机安装教程
首先进入VMware Workstation中,点击创建新的虚拟机 然后按如下步骤操作 然后进去选择拷贝的Windows 2008的映像文件 下面这个网址里面提供了各种映像文件的下载http://is ...
- sort(()=>{return Math.random()-0.5)}乱序数组不准确
为什么sort(()=>{return Math.random()-0.5)}乱序数组不准确.(注意结合插入排序原理来理解) @1.chrome浏览器对于数组长度10以内为插入排序.反之则快速排 ...
- poj2318(叉积判断点在直线左右+二分)
题目链接:https://vjudge.net/problem/POJ-2318 题意:有n条线将矩形分成n+1块,m个点落在矩形内,求每一块点的个数. 思路: 最近开始肝计算几何,之前的几何题基本处 ...
- GitHub项目管理维护实用教程
GitHub项目维护教程 1)注册GitHub账户并登陆: 2)在Windows cmd(或Ubuntu中的terminal)中cd到自己的工作目录,将仓库clone下来: 命令: git clo ...