当前位置: 首页 > 科技观察

亲测Nginx负载均衡,让你一步搞定

时间:2023-03-14 00:12:40 科技观察

【前言】在大型网站中,负载均衡是必不可少的。特别是对于同时访问量比较大的大型网站,比如网上商城、新闻等CMS系统,为了降低单台服务器的处理压力,我们引入了负载均衡的概念,将一台服务器的压力分散到几台服务器上。一方面降低了宕机的概率,另一方面也使得其他服务器在宕机后仍能继续稳定运行,提高了系统的健壮性。【实现功能】本文将要介绍的主要内容如下:1.配置三台服务器2.在三台服务器上分别部署相同的服务代码3.使用Nginx实现负载均衡【实现思路】我们的Nginx负载均衡器吧将部署在一个交互式服务器上,并配置与其他两个服务器的连接。所有请求都会直接访问Nginx服务接口,然后Nginx负载均衡器会选择实际的服务器端口进行调用。【开发部署环境】开发环境:Windows7x64sp1英文版     VisualStudio2017部署环境:阿里云ECS实例windowsserver2012x64     IIS7.0【所需技术】ASP.NETWebApi2(其他Java服务是也可以)【实现过程】使用ASP.NETwebapi2写一个简单返回json的接口。为了显示我们是在不同的服务器上调用接口,我们生成三个数字形式的接口服务,部署到三个服务器的iis中。publicIHttpActionResultGetTest(){//thrownewException_DG_Internationalization(1001);stringip=Request.GetIpAddressFromRequest();returnOK("TestApi.ClientIpAddressis->"+ip+"TheServeris=====333=====");}我部署的三台服务器后面的数字分别是111、222、333注:returnOK是我自定义的返回格式,具体简单代码可以直接returnJson();Request.GetIpAddressFromRequest();是我获取ip地址的扩展方法,请根据自己的情况实现。【系统测试】我们生成了三段后台代码后,分别部署到三台服务器上。为了服务器信息保密,我下面所有的ip地址都会用ip_A,ip_B,ip_C来标识第三个是我们要部署Nginx的服务器:部署好之后,我们来配置Nginx:下载Nginxhttp://nginx。org/en/download.html然后解压到ip_C服务器,打开conf文件夹下的nginx.conf编辑内容如下然后我们启动服务:cmd命令切换到nginx根目录,这样服务就启动了……吐槽一下,为什么不提示一句服务启动成功了……哎,太不人道了!然后我们打开任意一个接口测试工具,对同一个请求执行三次:请求1、请求2、请求3。可以发现每次请求我们调用的后台服务接口都不一样,所以保证在大量的客户端访问同一个服务器地址时,可以将一台服务器的压力分别分散到几台服务器上,达到负载均衡的目的