架构之路 之 Nginx实现负载均衡
【前言】
在大型网站中,负载均衡是有想当必要的。尤其是在同一时间访问量比较大的大型网站,例如网上商城,新闻等CMS系统,为了减轻单个服务器的处理压力,我们引进了负载均衡这一个概念,将一个服务器的压力分摊到几个服务器上,一方面减轻了宕机的几率,另一方面也使得宕机后还要其他服务器可以继续稳定运行,提高了系统的健壮性。
【实现功能】
这篇文章将要介绍的主要内容如下:
1、配置三台服务器
2、分别在三台服务器上部署同样的服务代码
3、使用Nginx实现负载均衡
【实现思路】
我们的Nginx负载均衡器将部署在一台交互服务器上,配置与其他两台服务器的连接,所有的请求直接访问Nginx服务接口,然后Nginx负载均衡器将自行选择真实调用的服务器端口。
【开发及部署环境】
开发环境:Windows 7 x64 sp1 英文版
VisualStudio 2017
部署环境:阿里云 ECS实例 windows server 2012 x64
IIS 7.0
【所需技术】
ASP.NET WebApi2
【实现过程】
使用ASP.NET webapi2 写一个简单地返回json的接口,为了展示我们调用的是不同服务器上的接口,我们以数字形式分别生成三个接口服务,并且分别部署到三台服务器的iis中。
public IHttpActionResult GetTest() { //throw new Exception_DG_Internationalization(1001); string ip = Request.GetIpAddressFromRequest(); return OK("Test Api . Client Ip Address is -> "+ip+" The Server is ===== 333 ====="); }
我部署的三台服务器后面的数字分别是 111,222,333
注:return OK是本人自定义的返回格式,具体简单代码可以直接return Json();
Request.GetIpAddressFromRequest();是本人扩展的获取ip地址的方法,具体实现请按自身情况实现。
【系统测试】
我们将三个后台代码生成后,分别部署到三个服务器上。
为了保密服务器信息,以下我的所有ip地址都将以ip_A,ip_B,ip_C来标识
第三个是我们将要部署Nginx的服务器:
部署好后,我们进行Nginx的配置:
下载Nginx http://nginx.org/en/download.html
然后解压到ip_C服务器,并打开conf文件夹下的nginx.conf
编辑内容如下
然后我们启动服务:
cmd命令切换到nginx的根目录下
这样,服务就算启动了... 吐槽一句,为什么不提示一句服务启动成功呢..欸,不人性化!
然后我们打开任意一个接口测试工具,分别执行三次相同的请求:
请求一、
请求二、
请求三、
可以发现,我们每一次的请求,调用的后台服务接口都不是同一个,这样就保证了在大量客户访问同一个服务器地址时候,可以将一个服务器的压力分别分摊到几个服务器上,达到了负载均衡的目的。
架构之路 之 Nginx实现负载均衡的更多相关文章
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
[前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)>中小编简单的讲解了Nginx的原理!俗话说:光说不练假把式.接下来,小编就和大家一起来做个小Demo来体会一下N ...
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(三)
参考网址:https://blog.csdn.net/zhanghan18333611647/article/details/50811980 [前言] 在<架构之路:nginx与IIS服务器搭 ...
- Nginx的负载均衡 - 整体架构
Nginx的负载均衡 - 整体架构 Nginx版本:1.9.1 我的博客:http://blog.csdn.net/zhangskd Nginx目前提供的负载均衡模块: ngx_http_upstre ...
- 【高可用架构】用Nginx实现负载均衡(三)
前言 在上一篇,已经用Envoy工具统一发布了Deploy项目代码.本篇我们来看看如何用nginx实现负载均衡 负载均衡器IP 192.168.10.11 [高可用架构]系列链接:待部署的架构介绍 演 ...
- Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡
文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...
- [转载] nginx的负载均衡
原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...
- linux+asp.net core+nginx四层负载均衡
Linux Disibutaion:Ubuntu 16.04.1 LTS Web Server:Nginx.Kestrel 关于如何在linux中部署asp.net core我这里不再详细介绍,可以参 ...
- nginx+tomcat负载均衡策略
測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用n ...
- Nginx+Keepalived负载均衡高可用
Nginx+Keepalived负载均衡高可用方案: Nginx 使用平台:unix.linux.windows. 功能: A.www web服务 http 80 b.负载均衡(方向代理proxy) ...
随机推荐
- Fisher Vector Encoding and Gaussian Mixture Model
一.背景知识 1. Discriminant Learning Algorithms(判别式方法) and Generative Learning Algorithms(生成式方法) 现在常见的模式 ...
- 编写原生的Node.js模块
导语:当Javascript的性能遭遇瓶颈,或者需要增强Javascript能力的时候,就需要依赖native模块来实现了. 应用场景 日常工作中,我们经常需要将原生的Node.js模块做为依赖并在项 ...
- Spring component-scan 的逻辑 、单例模式下多实例问题、事务失效
原创内容,转发请保留:http://www.cnblogs.com/iceJava/p/6930118.html,谢谢 之前遇到该问题,今天查看了下 spring 4.x 的代码 一,先理解下 con ...
- 使用ConcurrentDictionary替代Hashtable对多线程的对象缓存处理
在之前一段时间里面,我的基类多数使用lock和Hashtable组合实现多线程内缓存的冲突处理,不过有时候使用这两个搭配并不尽如人意,偶尔还是出现了集合已经加入的异常,对代码做多方的处理后依然如故,最 ...
- 对 dotweb 框架进行统一的自定义错误处理
助移动端的增长,如今 RESTful 风格的 API 已经十分流行, 用各种语言去写后端 API 都有很成熟方便的方案,用 golang 写后端 API 更是生产力的代表, 你可以用不输 python ...
- JavaScript设计模式_01_单例模式
最近项目不太忙,难得有时间看看书,平时挺喜欢js这门语言.也看过很多高级教程,觉得自己还是比较热衷于js的设计模式.这一次重温一下<JavaScript设计模式与开发实践>,开篇为单例模式 ...
- 移动端页面开发适配 rem布局原理
主题 HTML移动端页面开发适配 rem布局原理 什么是适配,为什么要适配 我们拿到的设计图一般是以640,750,1080分辨率为基准设计的,而现在的手机终端各式各样,分辨率不同,逻辑像素不同 ,适 ...
- Android控件的使用
1. RadioButton (单选按钮) 嵌入到RadioGroup中实现单选效果 android:checkedButton="radio的id值" int getchecke ...
- 打开IIS的快捷键
[windows键+R]→在运行界面输入“inetmgr”→点击回车键,即可以出现IIS界面
- javascript的八张图