百度了下负载均衡:英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器FTP服务器企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

嗯,跟我理解差不多:如果你的网站请求很多(是“很多”),造成什么结果呢?响应速度变慢(每个请求都是要创建线程去执行的,而一台服务器能同时开辟的线程数是有限的),严重的服务器崩掉。

如何解决呢?

办法一:更换服务器,换台牛逼点的呗,4核换8核,8核换16核,16核....额,那这样是不是很贵啊? 这是肯定的,所以呢

办法二:不换服务器,加服务器,多弄几天价廉的服务器,这也是一种解决办法。将请求分散到不同的服务器上,这样一来,压力平摊了,多好。 老板说:这个好,这个好。

针对办法二,最关键的一点就是如何将请求分散到不同的服务器上,这需要一种算法,最最简单的可以弄个随机算法,我之前在分布式存储图片中提到过:

var list = db.ImageServerInfo.Where<ImageServerInfo>(c=>c.State==).ToList();
int serverCount = list.Count();
Random r = new Random();
int i = r.Next();
int j = i%r;
//获取状态为1(normal)的图片服务器总数,随机数去对其取余。得到的就是我们的随机索引,于是就可通过list[j]去获取ServerId,然后再去获取ServerIP

但上面这段代码有下面几个问题:

1、语言限制,如果是前端请求,得写段同样的JS代码。

2、算法太low,效率低。

那么有没有一个通用的玩意儿可以实现这个呢。答案就是我们的Nginx——反向代理服务器

请求流程:

我们不直接请求我们的服务地址,而是请求Nginx地址,由Nginx作为一个中转站,将请求经过处理后发送到服务地址。这个处理就是经过Nginx的算法然后将请求导向到确定的某个服务地址,也就是上面说到的具体某台服务器地址。

如何做的,很简单,首先下载Nginx,百度即可。

下载后,更改下配置文件即可:

找到里面server这个节点:设置默认端口的,我这里设置成了82,因为80这么好的端口,不能给它

控制台命令开启Nginx服务

或者直接双击Nginx.exe开启也可。

浏览器输入:localhost:82,即可看到我们的Nginx开启成功

然后剩下就是配置的事情了,添加节点 取名为 zjgistdt.com,#为注释,所以我们这里就两个服务地址。即对应我们的两台服务器地址

upstream zjgistdt.com{   #服务器集群名字
#server 192.168.1.186: weight=;#服务器配置 weight是权重的意思,权重越大,分配的
#天地图后台局域网测试
server 192.168.0.202: weight=;
server 192.168.0.38: weight=;
}

然后在server节点处进行关联:

server {
listen 82; #监听82端口,80被占用
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #location / {
# root html;
# index index.html index.htm;
#} location / {
proxy_pass http://zjgistdt.com;#请求转向zjgistdt.com定义的服务器列表
proxy_redirect default;
}
}

至此,你请求Nginx服务器即转向zjgistdt.com定义的服务器列表。

配置完成...简单爆炸。

部署Nginx的这台机子ip为:192.168.0.30,而我们设置的端口号为82,

所以一切基于192.168.0.30:82/.....的请求都将转向我们真实的两台服务器地址。

至此,所谓的负载均衡也就”完事儿“了,当然,我们的Nginx能做的远不止于此,如Nginx直接返回静态资源等等,就是你有需要再去拓展的东西,操作都是配置节点即可。

拓展:其实Nginx算是一种节约成本的方式,如果有钱可以部署多个Nginx,然后用企业级的负载均衡服务器来在Nginx上再加一层。如f5负载均衡器

负载均衡是一种技术,指通过某种算法实现负载分担的方法。通俗的讲就是统一分配请求的设备,负载均衡会统一接收全部请求,然后按照设定好的算法将这些请求分配给这个负载均衡组中的所有成员,以此来实现请求(负载)的均衡分配。
F5是负载均衡产品的一个品牌,其地位类似于诺基亚在手机品牌中的位置。除了F5以外,Radware、Array、A10、Cisco、深信服和华夏创新都是负载均衡的牌子,因为F5在这类产品中影响最大,所以经常说F5负载均衡。

 
 

通过Nginx实现负载均衡的更多相关文章

  1. nginx+tomcat负载均衡

    最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...

  2. 使用Nginx实现负载均衡

    使用Nginx实现负载均衡 一.nginx简介 nginx是一个高性能的HTTP服务器和反向代理服务器.它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站. 二.nginx ...

  3. nginx作为负载均衡服务器——测试

    i. 需求 nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器. nginx负载均衡服务器:192.168.101.3 tomcat1服 ...

  4. windows配置nginx实现负载均衡集群

    windows配置nginx实现负载均衡集群2014-08-20 09:44:40   来源:www.abcde.cn   评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...

  5. 使用nginx做负载均衡的session共享问题

    查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不 ...

  6. 【Nginx】配置Nginx的负载均衡

    参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tom ...

  7. Nginx的负载均衡 - 整体架构

    Nginx的负载均衡 - 整体架构 Nginx版本:1.9.1 我的博客:http://blog.csdn.net/zhangskd Nginx目前提供的负载均衡模块: ngx_http_upstre ...

  8. Nginx作为负载均衡服务器(Windows环境)

    一个最简单的负载均衡测试,不涉及到session复制,只是将请求分配到不同的服务器上去而已. 1.创建一个简单的web应用.只有一个index.jsp页面,,内容如下. <%@ page lan ...

  9. [转载] nginx的负载均衡

    原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...

  10. Nginx之负载均衡

    转自:http://www.360doc.com/content/13/1114/12/7694408_329125489.shtml 注,大家可以看到,由于我们网站是发展初期,nginx只代理了后端 ...

随机推荐

  1. HTTP基本认证(Basic Authentication)的JAVA示例

    大家在登录网站的时候,大部分时候是通过一个表单提交登录信息.但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用HTTP基本认证.下面来看看一看这个认证的工作过程:第一步:  客户端发送ht ...

  2. ie8下jquery改变PNG的opacity出现黑边,ie6下png透明解决办法

    目前互联网对于网页效果要求越来越高,不可避免的用到PNG图片,PNG分为几种格 式,PNG8 PNG24 PNG32,其中最常用的,也是显示效果和大小比较适中的则是PNG24,支持半透明,透明,颜色也 ...

  3. jquery easyui 插件开发

    (function($) { /** * 插件定义 */ $.fn.resquery = function(options, param) { if (typeof options == " ...

  4. hive中同列多行数据组合的方法以及array to string要点(行转列)

    1. 同列多行数据组合成一个字段cell的方法, top N 问题的hive方案 如下: hive 列转行 to json与to array list set等复杂结构,hive topN的提取的窗口 ...

  5. mac osx 系统 brew install hadoop 安装指南

    mac osx 系统 brew  install hadoop 安装指南   brew install hadoop 配置 core-site.xml:配置hdfs文件地址(记得chmod 对应文件夹 ...

  6. 【转】Objective-C Class Dump

    (转自:http://blog.sina.com.cn/s/blog_4431c7610100x15t.html) class dump是一个命令行工具,用来监测存储在Mach-O二进制文件理的Obj ...

  7. 4M宽带一般最大的下载速度是多少?

    4M宽带理论速度=4Mbit/s=4096 Kbit/s=512 KByte/s宽带速度其实是有两个参数的:上行(上传速度).下行(下载速度),一般宽带标为4M其实是说下载速度是4M(即512KB/每 ...

  8. 利用Aspose文档转图片

    通过使用Aspose您可以轻松的将您的文档转换成真正的图片格式,最好的保证您的内容将实际可见,与其他格式相比,它并不存在查看工具的安装问题. 准备工作: 1:下载Aspose组件包:http://do ...

  9. java利用透明的图片轮廓抠图

    需要处理的图片: 1.png(空白区域为透明) 2.png 处理后的结果图片:result.png 代码如下: import java.awt.Graphics2D; import java.awt. ...

  10. chrome start.js报错

    是由 chrome 插件 “电脑管家广告过滤” 引起的 并且,在用户电脑上还出现了这个插件拦截正常请求的情况 如果同时报以下错误: Uncaught TypeError: Cannot read pr ...