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+Keepalived实现站点高可用(负载均衡)

本文主要讲解配置Keepalived服务,关于Nginx的安装与配置将会持续更新。

Nginx轻松实现开源负载均衡

  • 2013年07月20日 17:56
  • 539KB
  • 下载

Nginx配置upstream实现负载均衡

如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下: 1. 在http节点下,添加...

Nginx 与Tomcat 实现动静态分离、负载均衡

Nginx一个高性能的HTTP和反向代理服务器, 具有很高的稳定性和支持热部署、模块扩展也很容易。当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx实现负载均衡
举报原因:
原因补充:

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