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负载均衡与反向代理—《亿级流量网站架构核心技术》
本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用 ...
- 物联网架构成长之路(10)-Nginx负载均衡
0. 前言 关于Nginx负载均衡的简单配置,我以前博客配置过基于HTTP的负载均衡.这次的负载均衡有点不一样,就是基于TCP的负载均衡.基于HTTP负载均衡是默认的Nginx版本支持的,配置也很简单 ...
- 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构
1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...
- [转]搭建Keepalived+Nginx+Tomcat高可用负载均衡架构
[原文]https://www.toutiao.com/i6591714650205716996/ 一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最 ...
- Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建
Keepalived + Nginx + Tomcat 的高可用负载均衡架构搭建 Nginx 是一个高性能的 HTTP反向代理服务器 Keepalived 是一个基于VRRP协议来实现的LVS服务高可 ...
- 实战Nginx负载均衡高冗余高可用WEB架构
最近公司主力网站之一改版完成终于上线了,牵扯了我大半年的时间,现在终于有时间坐下来写点东西,总结沉淀一下自己的技术心得.此次,根据服务器的数量和质量,我采用负载均衡高冗余的架构,考虑单点故障,W ...
- Nginx主主负载均衡架构
在和一些朋友交流Nginx+Keepalived技术时,我虽然已成功多次实Nginx+Keepaived项目方案,但这些都是用的单主Nginx在工作,从Nginx长期只是处于备份状态,所以我们想将二台 ...
- Keepalived + Nginx + Tomcat 高可用负载均衡架构
环境: 1.centos7.3 2.虚拟ip:192.168.217.200 3.192.168.217.11.192.168.217.12上分别部署Nginx Keepalived Tomcat并进 ...
- 搭建Keepalived + Nginx + Tomcat的高可用负载均衡架构
1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...
- Nginx负载均衡高可用---架构
1. Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现w ...
随机推荐
- 图像实验室 website 项目日志
day 1 1.问题: 在演示界面选择浏览本地图片,上传以后不显示上传图片 原因:PIL库没有装好,参见之前博客重装 2.问题: 可以上传图片并在网站上显示,但是不能得到运行结果的图片. 原因:没有将 ...
- 纯代码实现WordPress评论回复自动添加@评论者的功能
先看看效果: 这个有什么用呢?添加了@功能之后那些用户评论之间的层次关系就很清晰了,我们可以清楚地知道这些评论是谁发给谁的. 其实主要是为了提升逼格. 实现方法: 将下面代码加入function.ph ...
- SignalR Self Host+MVC等多端消息推送服务(1)
一.概述 由于项目需要,最近公司项目里有个模块功能,需要使用到即时获得审批通知:原本的设计方案是使用ajax对服务器进行定时轮询查询,刚刚开始数据量和使用量不大的时候还好,后来使用量的增加和系统中各种 ...
- 简单docker镜像修改方式
• 创建Dockerfile,文件内容如下: FROM nps:v1.0.1 ENTRYPOINT ["/usr/bin/init.sh"] • 启动基础镜像:docker run ...
- 51ak带你看MYSQL5.7源码1:main入口函数
从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...
- Vue:渲染、指令、事件、组件、Props、Slots
如果要我用一句话描述使用 Vue 的经历,我可能会说“它如此合乎常理”或者“它提供给我需要的工具,而且没有妨碍我的工作”.每当学习 Vue 的时候,我都很高兴,因为很有意义,而且很优雅. 以上是我对 ...
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
1. 引言 1.1 定义 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库 ...
- 制作Linux登录欢迎界面
1.登录提示语: 将提示语写入/etc/motd 文件 _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ ...
- Algorithm --> 十大排序算法
十大排序算法 主要排序法有: 一.冒泡( Bubble)排序—— 相邻交换 二.选择排序 ——每次最小/ 大排在相应的位置 三.插入排序 ——将下一个插入已排好的序列中 四.壳( Shell) ...
- Lucene详解
一.lucene原理 Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.它不是一个完整的搜索应用程序 ...