前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx负载均衡(不信你不懂)

Nginx负载均衡(不信你不懂)

作者头像
老七Linux
发布2018-05-31 10:39:41
4700
发布2018-05-31 10:39:41
举报

先来图:

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

代码语言:javascript
复制
  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段加入以下代码:

代码语言:javascript
复制
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段加入以下代码:

代码语言:javascript
复制
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的配置如下:

代码语言:javascript
复制
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

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

代码语言:javascript
复制
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的配置如下:

代码语言:javascript
复制
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

P2配置:

代码语言:javascript
复制
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

P3配置:

代码语言:javascript
复制
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}

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

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

或关注下session共享! nginx的配置也很简单,代码如下:

代码语言:javascript
复制
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. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/11/21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档