nginx实现负载均衡

一直以来在考虑大型电商系统是怎么实现的,其中主要包括数据库的设计(如淘宝、京东的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;proxysetheaderXRealIP remote_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站点。出现这样的结果证明我们负载均衡搭建成功了。

服务端代码:下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值