Nginx负载均衡实战

简介:

负载均衡----实现配置篇(Nginx)

同类文章:负载均衡----概念认识篇


吐槽:自从那篇“探讨负载均衡”那篇文章被博客园吐槽后,心里极度不平衡,思来想去还是把名字改成“负载均衡----概念认识篇”,再加多几篇文章来诠释上篇文章的精华所在。

还不了解负载均衡的,推荐你阅读:负载均衡----概念认识篇

 

----------- 华丽的分割线 正文开始---------------

 

首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。

既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
今天我们讲的实例嘛…..我们还是先看图比较好:



还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件: 
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80;
 
    server 192.168.2.4:80;
 
    server 192.168.2.5:80;}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

server{ 
    listen 80;
 
    server_name www.mydomain.com;
     location / { 
        proxy_pass http://servers.mydomain.com;
 
        proxy_set_header Host $host;
 
        proxy_set_header X-Real-IP $remote_addr;
 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     } 
}

那么P1、P2、P3的配置如下:

server{ 
    listen 80;
 
    server_name www.mydomain.com;
 
    index index.html;
 
    root /data/htdocs/www;
 }

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

upstream servers2.mydomain.com { 
    server 192.168.2.3:8080;
 
    server 192.168.2.4:8081;
 
    server 192.168.2.5:8082;}

server{ 
    listen 80;
 
    server_name www.mydomain.com;
     location / { 
        proxy_pass http://servers2.mydomain.com;
 
        proxy_set_header Host $host;
 
        proxy_set_header X-Real-IP $remote_addr;
 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     } 
}

 

那么P1的配置如下:

server{ 
    listen 8080;
 
    server_name www.mydomain.com;
 
    index index.html;
 
    root /data/htdocs/www;
 }

 

P2配置:

server{ 
    listen 8081;
 
    server_name www.mydomain.com;
 
    index index.html;
 
    root /data/htdocs/www;
 }

 

P3配置:

server{ 
    listen 8082;
 
    server_name www.mydomain.com;
 
    index index.html;
 
    root /data/htdocs/www;
 }

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢? 
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略 
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。 
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看: 
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

upstream servers2.mydomain.com { 
    server 192.168.2.3:8080;
 
    server 192.168.2.4:8081;
 
    server 192.168.2.5:8082;
    ip_hash;}

 

其实一切就这么简单,来赶快试试吧!

4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来? 
想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略








      本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1956941,如需转载请自行联系原作者



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
Web App开发 编解码 运维
LNMP详解(十二)——Nginx URL重写实战
LNMP详解(十二)——Nginx URL重写实战
20 2
|
1月前
|
运维 负载均衡 应用服务中间件
LNMP详解(九)——Nginx虚拟IP实战
LNMP详解(九)——Nginx虚拟IP实战
55 2
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
32 0
|
1月前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
40 0
|
3月前
|
应用服务中间件 PHP 开发工具
Nginx解析环境搭建及实战
Nginx解析环境搭建及实战
26 0
|
1月前
|
运维 负载均衡 应用服务中间件
LNMP详解(九)——Nginx虚拟IP实战
LNMP详解(九)——Nginx虚拟IP实战
70 2
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
44 4
|
18天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
22天前
|
负载均衡 应用服务中间件 nginx
Nginx 负载均衡
Nginx 负载均衡
23 2
|
1月前
|
缓存 负载均衡 应用服务中间件
nginx的各种负载均衡策略与各种负载均衡策略如何配置
Nginx支持多种负载均衡策略,如轮询、加权轮询、IP哈希、最少连接、URL哈希和fair策略。轮询是默认策略,每个请求按顺序分发;加权轮询根据权重分配请求;IP哈希确保相同IP的请求始终发送到同一服务器;最少连接将请求发送给连接数最少的服务器;URL哈希(需额外工具或模块)和fair策略则依据URL和响应时间分配请求。配置变更需更新nginx.conf并重新加载或重启服务,具体配置应参照官方文档。
47 0