nginx实现负载均衡

原创 2017年01月03日 17:00:14
一直以来在考虑大型电商系统是怎么实现的,其中主要包括数据库的设计(如淘宝、京东的sku怎么设计实现,),负载均衡、分布式缓存redis、CDN、NFS等,在接下来的博客中将会对这些技术进行介绍,本篇先从应用服务器的负载均衡入手;

 我的解释:一项任务交由一个开发人员处理总会有上限处理能力,这时可以考虑增加开发人员来共同处理这项任务,多人处理同一项任务时就会涉及到调度问题,即任务分配,这和多线程理念是一致的。nginx在这里的角色相当于任务分配者。

 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
 首先从nginx的官网上下载最新版的nginx,[nginx官网地址](http://nginx.org/en/download.html),由于本人使用IIS作为应用服务器,且对linux不熟悉,所以使用windows版本,在此使用的版本是1.10.2,官方下载地址:[nginx-1.10.2.zip](nginx.org/download/nginx-1.10.2.zip) 。下载完成之后解压,运行nginx.exe就启动了nginx了,启动后会在进程里面看到nginx。

这里写图片描述
说明:如果启动nginx时,黑屏闪一下,并且在资源管理器中找不到该进程,则很有可能是端口冲突,nginx没有启动起来,这是需要修改nginx的监听端口,位置在conf->nginx.conf,打开nginx.conf文件,修改Listen的监听端口,然后再次启动就可以了;
windows下nginx启动、关闭、重启命令说明;
启动:直接点击Nginx目录下的nginx.exe 或者 cmd运行start nginx
关闭:nginx -s stop 或者 nginx -s quit
stop表示立即停止nginx,不保存相关信息
quit表示正常退出nginx,并保存相关信息
重启(因为改变了配置,需要重启):nginx -s reload

1、站点搭建
在站点下面创建一个index页面,输出当前服务器的信息,在这里我十一两个虚拟你搭建的IIS站点,分别是:192.168.1.238:9800、192.168.1.237:9910,index输入内容如下:

这里写图片描述

2、配置nginx
2.1、修改nginx监听端口,修改http server下的listen节点值,由于本机80端口已经被占用,我改为监听8083端口。
listen 8080;
2.2、 在http节点下添加upstream(服务器集群),server设置的是集群服务器的信息,我这里搭建了两个站点,配置了两条信息。
//注意server不能包含空格(选中server以后的内部,不能包含空格,在这儿折腾了好长时间,修改配置以后,总是重启不了)
upstream mall_one {
server 192.168.1.237:9910;
server 192.168.1.238:9800;
}
这里写图片描述
这里写图片描述
2.3、找到http->server节点下面的location,做如下修改
location / {
root html;
index index.aspx index.html index.htm;
#其中mall_one 对应着upstream设置的集群名称
proxy_pass http://mall_one;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host host;proxysetheaderXRealIPremote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
修改完成配置文件以后记得重启nginx服务,最终完整配置文件信息如下
这里写图片描述
3、运行
访问http://127.0.0.1:8080/index.aspx 输出内容如下:
这里写图片描述
停掉192.168.1.238服务器,再次访问,则访问的是192.168.1.237服务器。

可以看到,请求被分发到了192.168.1.238站点和192.168.1.237站点。出现这样的结果证明我们负载均衡搭建成功了。

服务端代码:下载地址

版权声明:本文为博主原创文章,未经博主允许不得转载。

Nginx反向代理实现负载均衡总结

Nginx反向代理实现负载均衡总结: 从Nginx的诞生来源就可以知道,它是为了解决大数据量高并发访问而产生的,这也要感谢Nginx的开发者,使Nginx现今成为了LNMP重要的成员。好了,废话不多说...
  • why_2012_gogo
  • why_2012_gogo
  • 2016年03月23日 22:57
  • 6150

Linux下利用Niginx进行负载均衡

这篇文章是前边文章的后续,在腾讯云服务器上安装了3个tomcat服务器和一个nginx服务器,利用nginx服务器均衡3个tomcat服务器的访问,入门感觉还是很简单的,关键是注意一些细节并提高后边的...
  • maoyeqiu
  • maoyeqiu
  • 2016年07月03日 18:47
  • 689

Nginx+tomcat实现负载均衡

Nginx 反向代理初印象Nginx (“engine x”) 是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占有内存少,并发能力强,事实上nginx的...
  • dylanzr
  • dylanzr
  • 2016年08月06日 11:20
  • 6370

Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】

nginx 这个轻量级、高性能的 web server 主要可以干两件事情:   〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持);   〉另外一个功能就是...
  • u014749862
  • u014749862
  • 2016年01月15日 10:50
  • 52683

实现nginx的负载均衡

现在很多企业都采用多台服务器来共同支撑企业的网站,这样不仅可以加快企业网站的访问速度,还可以避免突发情况造成的灾难,但是会由于服务器本身原因或者某些外界因素会造成各个服务器的访问速度不一,这时候我们就...
  • andong154564667
  • andong154564667
  • 2016年08月04日 18:31
  • 6851

浅谈Nginx负载均衡原理与实现

1 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能...
  • u012517198
  • u012517198
  • 2016年03月17日 09:27
  • 12978

nginx 实现tcp负载均衡

nginx常用来做http的反向代理,它默认是不支持tcp的,因此要使用nginx来实现tcp的反向代理必须用源码编译安装,并且在编译时安装tcp的扩展模块。    首先安装下载nginx:点击打开链...
  • D_Guco
  • D_Guco
  • 2017年09月02日 15:14
  • 1154

配置Nginx实现负载均衡

在关于高并发负载均衡一文中已经提到,企业在解决高并发问题时,一般有两个方向的处理策略,软件、硬件,硬件上添加负载均衡器分发大量请求,软件上可在高并发瓶颈处:数据库+web服务器两处添加解决方案,其中w...
  • Daybreak1209
  • Daybreak1209
  • 2016年06月01日 10:45
  • 10170

KeepLived + Nginx 实现高可用 负载均衡 原理

Nginx + Keepalived 实例 (2013-08-06 11:37:20)转载▼ 标签: nginx keepalived 高可用 负载均衡 主备 分类: Linux Nginx_Ma...
  • guodaoying
  • guodaoying
  • 2016年07月15日 00:48
  • 1179

利用nginx实现数据库的负载均衡

1、安装nginx版本要在1.9以上。 2、在配置的时候,加上 --with-stream 3、配置nginx.conf: stream {     upstream myServer {      ...
  • c571121319
  • c571121319
  • 2016年09月06日 17:59
  • 1487
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx实现负载均衡
举报原因:
原因补充:

(最多只允许输入30个字)