Nginx实现tomcat集群进行负载均衡

一、背景

  随着业务量和用户数量的激增,单一的tomcat部署应用已经无法满足性能需求,而且对于每次发布项目期间服务不可用的问题也凸显,既然出现了这个问题,那么我们本文就借助nginx来完美的解决这个问题。

二、基本概念

1.说明:关于Nginx的概念和介绍以及Centos7下安装步骤,请移步:Centos7安装Nginx实战

2.正向代理和反向代理

 假设我们给定客户端A、代理服务器B、以及最终服务器C

 正向代理:代理服务器B来代替客户端A来访问最终服务器C并将最终结果转发给客户端A,站在客户端A的角度上,代理服务器代理的是客户端A,这个过程是正向的,所以叫正向代理。(正向代理需要客户端A设置代理服务器的ip和提供代理服务的端口)

 反向代理:客户端A直接访问代理服务器B,由代理服务器B来决定将请求转发到哪个最终服务器进行真正处理,并将最终服务器的处理结果转发给客户端A,也就是代理服务器代理的是最终服务器C,站在客户端A的角度上,这个过程是反向的,所以叫反向代理。(反向代理不需要客户端A进行任何设置)

 关于正向代理和反向代理,这里有一片不错的文章:图解正向代理、反向代理、透明代理

3.负载均衡(Load Balance)

 所谓负载均衡就是将一批可以提供相同服务的服务器组成一个服务器集合,每台服务器都可以单独向外部提供相同的服务,通过某种负载分担技术,按照用户指定的负载均衡策略将外部请求分配到服务器集合中的具体的某一台来进行处理的技术。以此来提高并发、增加吞吐量、提高处理能力、增加服务可用性。

三、实现步骤

1.首先将项目部署在不同的服务器上,并记录下服务的IP地址和端口

  如:tomcat A : 192.168.85.131:8080

    tomcat B : 192.168.85.131:8081

2.在nginx的config文件nginx.conf中进行如下设置

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;upstream tomcats{# server 192.168.85.131:8080 weight=5;server 192.168.85.131:8080;server 192.168.85.131:8081;}server {listen       80;server_name tomcat.hafiz.com;#charset koi8-r;#access_log  logs/host.access.log  main;location / {proxy_pass http://tomcats;index  index.html index.htm;}}
}

3.说明:其中标红的地方是最关键的地方,upstream指定了集群服务的各个服务的地址,可以使用weight来增加某个服务器的权重,也就意味着请求会被多转发到这个服务器上。server_name用来指定暴露给用户的地址,用户访问这个地址,这个地址再将请求按照策略进行转发。

4.有了集群提供负载均衡,如果是web项目就涉及到sesstion在集群中共享的问题,要解决这个问题,请移步:Shrio+Redis实现tomcat集群共享session

四、总结

  通过本文,我们就清楚了什么叫正向代理和反向代理以及负载均衡,还有如何使用nginx来完成负载均衡。以前感觉部署集群提供负载均衡很牛,现在看来其实也没啥,挺简单的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言简单说】三:整数变量扩展和输出扩展(3)

今日天气太好了&#xff0c;总感觉昏昏欲睡。。。 切记请勿荒废时间 小T今日来跟大家说说新建多个整数变量&#xff0c;以及输出多个变量的粒子&#xff0c;代码如下: #include<stdio.h> #include<stdlib.h> int main(){int a1,b2,c3;printf("a 的值是%d;b…

python删除列表中的偶数_Python:从列表中删除奇数

我写了一个函数来从列表中删除奇数,就像这样&#xff1a; def remove_odd(l): for i in l: if i % 2 ! 0: l.remove(i) print l return l remove_odd([4,5,4]) remove_odd([4,5,4,7,9,11]) remove_odd([4,5,4,7,9,11,12,13]) 它返回&#xff1a; [4, 4] [4, 4, 9] [4, 4, 9, 12…

MAUI初体验:爽

只是记录&#xff0c;只是Hello World体验&#xff0c;别期望太高。1. 前言经过几个小时折腾&#xff0c;Maui环境终于安装好了&#xff0c;先上Hello World截图&#xff1a;1.1 MAUI Windows上MAUI Windows1.2 MAUI Android上MAUI Android2. 今早看到一个群聊推送点击链接可以…

无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。错误解决的方法...

“/CRM”应用程序中的server错误。 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查以下的特定错误具体信息并适当地改动配置文件。 分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。源错误: 行 24: 设…

windows之nslookup命令

1 问题 今天是特别傻逼,既然问了一个很愚蠢的问题,登录后台需要相关的ip,但是我只有域名,这么太突然来,我既然不知道用nslookup命令,好吧,先记录起来,希望下次不要犯这样的傻逼错误 2 查看电脑的所有配置 在windowd 终端输入如下命令 ifconfig/all 3 nslookup正…

C#对象初始化器

using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace 对象初始化器 {class Program{static void Main(string[] args){//第二种初始化var s1 new student("张三",23);Console.WriteLine(s1.ToString());//第一种初始化…

动态轮播图

1 /// <reference path"jquery-1.10.2.min.js" />2 var i 0;3 var timer; //设置定时器4 $(function () {5 $("#dlunbo").hover(function () {6 $(".btn").show();7 }, function () {8 $(".btn").hide…

Codeforces 41D Pawn 简单dp

题目链接&#xff1a;点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵&#xff0c;每一个位置由 0-9的一个整数表示 问&#xff1a; 从最后一行開始向上走到第一行使得路径上的和 % (k1) 0 每一个格子仅仅能向↖或↗走一步 求&#xff1a;最大的路径和 最后一行的哪个位…

【C语言简单说】三:浮点数变量和字符变量(4)

在最开始的时候&#xff0c;我们说过&#xff0c;我们的变量是有类型的对吧&#xff1f;&#xff08;其实我已经忘记我有没有说&#xff09;0o。(-. - ) 睡觉 这节我们就来说说&#xff0c;我们之前有整数变量了对吧&#xff1f;那个int就是整数类型的对吧&#xff1f;好了&am…

C#语法糖空合并运算符【??】和空合并赋值运算符【 ??=】

例子比如说:我们有一个UserInformation类public class UserInformation{ public string Name { get; set; }public List<string> Address { get; set; }}有下面一段代码,我们获取张三的第一个地址,如果地址为空&#xff0c;则返回上海市,常规做法如下static void Main(st…

DNS的理解

1 DNS是什么 DNS(Domain Name System) ,域名系统 作用:域名转化成ip 为什么要用DNS:访问一个网址需要知道ip,但是ip每个页面不同不方便记,我们需要给ip取一个别名,方便我们记忆,比如 www.baidu.com,这些域名我们记住就行了,但是怎么从这些域名转化成相应的ip呢?,我…

eos操作系统_EOS相机统一的用户界面

自EOS相机诞生起就未改变的基本布局精心设计的操作系统EOS数码单反相机从普及机型到高端机型的按钮布局都是共通的。快门按钮的位置自不必说&#xff0c;主拨盘位置和背面按钮的配置也基本相同。特点是在手柄一侧集中配置用于进行主要操作的按钮。实现了只用右手就能完成拍摄相…

CSS3中弹性盒布局的最新版

虽然可以使用其他CSS样式属性来实现页面布局处理&#xff0c;但是如果使用CSS Flexible Box模块中定义的弹性盒布局技术&#xff0c;可以根据屏幕尺寸或浏览器窗口尺寸自动调整页面中各局部区域的显示方式&#xff0c;即实现非常灵活的布局处理。虽然CSS Flexible Box模块已经被…

java filechannel 空_Java NIO FileChanel

http://www.cnblogs.com/interdrp/p/3785164.html(好)path--->path 耗时&#xff1a;49毫秒pos:1048576pos:2097152pos:3145728pos:4194304pos:5242880pos:6291456pos:7340032pos:8388608pos:9437184pos:10485760pos:11534336pos:12582912pos:13631488pos:14680064pos:15728…

C# 的扩展方法在 LINQ 中实现数组排序

首先定义一个数组&#xff0c;int[] a { 3,1,2,4}&#xff0c;我们要简单的实现该数组的排序&#xff0c;但是a数组是System空间下的&#xff0c;没有OrderBy()之类的方法&#xff0c;这是我们引入命名空间using System.Linq之后可以看见又该方法了。给个简单的例子如下&#…

【C语言简单说】三:变量总结ASCII码扩展(5)

前面几个小节都在说变量&#xff0c;那么这一节我们就来总结一下 int表示整数&#xff0c;float表示小数&#xff0c;char表示字符。他们所匹配的&#xff0c;整数&#xff1a;%d&#xff1b;浮点数&#xff1a;%f&#xff1b;字符&#xff1a;%c。 我们来看一个程序&#xf…

关于动态修改定时器的时间间隔

定时器的时间间隔是不能修改的&#xff0c;只能不停的创建&#xff0c;清除&#xff0c;创建。做出时间间隔变换的表象使用函数表达式和递归实现&#xff1a; var counter 10; var myFunction function(){clearInterval(interval);counter * 10;interval setInterval(myFunc…

c#语法糖模式匹配【switch 表达式】

例子我们首先定义一个颜色枚举public enum ColorEnum{ Red,Blue,Black,}我们写一个方法获取颜色的RGB值&#xff0c;我们这里使用Switch表达式&#xff0c;传统做法是:switch 语句在其每个 case 块中生成一个值,比如这样private Color GetColorRgb(ColorEnum colorEnum){switch…

Windows之Fiddler抓HTTP和HTTPS请求

1 Fiddler 1) 介绍:Fiddler是抓包工具,原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改 2)下载地址:到Fiddler官网下载,直接百度 Fiddler官网 2 Fiddler抓HTTP的包 比如我们需要抓谷歌浏览器的http请…

2015华为校招机试面试

昨天参加了华为南研所校招的机试&#xff0c;一共三道题&#xff0c;第一题很简单&#xff0c;输入一个字符串格式的日期&#xff0c;年-月&#xff0c;输出该月有多少天&#xff0c;主要注意闰年&#xff08;&#xff08;%40&&%100&#xff01;0&#xff09;||%4000&a…