网站首页 > 技术教程 正文
负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机和某台服务器闲置的情况。那么负载均衡的前提就是要2台以上服务器才能实现。
由于没有服务器,所以本次测试直接host指定域名,服务器不够,我们用nodejs监听了三个端口(8881,8882,8888)来模拟多台服务器。nginx监听80端口作为主服务器。
var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('server 8881'); }).listen(8881);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8881/');
var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('server 8882'); }).listen(8882);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8882');
var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('server 8888'); }).listen(8888);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8888/');
测试域名yongle.com
A服务器监听80端口(主)
B服务器监听8881端口(从)
C服务器监听8882端口(从)
D服务器监听8888端口(从)
A服务器做为主服务器,域名直接解析到A服务器( 127.0.0.1:80)上,由A服务器负载均衡到B服务器( 127.0.0.1:8881)、C服务器( 127.0.0.1:8882)和D服务器( 127.0.0.1:8888)上。
A服务器nginx.conf设置打开nginx.conf,文件位置在nginx安装目录的conf目录下。在http段加入以下代码
upstream yongle.com { server 127.0.0.1:8881; server 127.0.0.1:8882; server 127.0.0.1:8888; } server{ listen 80; server_name yongle.com; location / { proxy_pass http://yongle.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; } }
保存重启nginx即可完成负载均衡
我们把域名解析到A服务器,然后由A服务器转发到B服务器C服务器与D服务器,那么A服务器只做一个转发功能,现在我们让A服务器也提供站点服务。
如果添加主服务器到upstream中,那么可能会有以下两种情况发生:
1、主服务器转发到了其它IP上,其它IP服务器正常处理;
2、主服务器转发到了自己IP上,然后又进到主服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。
怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理yongle.com的访问请求,必须重新监听一个新的端口。于是我们把主服务器的nginx.conf加入以下一段代码:
server { listen 8000; server_name yongle.com; location / { root html; index index.html index.htm; } }
把主服务器添加到upstream中
upstream yongle.com { server 127.0.0.1:8881; server 127.0.0.1:8882; server 127.0.0.1:8888; server 127.0.0.1:8000; }
到这里我们就完成了把主服务器也加入到了负载均衡中。
Nginx负载均衡有4种方案配置
1、轮询轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器上
2、最少连接 least_conn;Web请求会被转发到连接数最少的服务器上。
3、IP地址哈希 ip_hash;前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
4、基于权重 weight基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
猜你喜欢
- 2024-10-14 nginx-负载均衡(nginx负载均衡的三种方式)
- 2024-10-14 5分钟教你合理配置 Nginx Worker_processes和Worker_connections
- 2024-10-14 nginx 之服务器的负载均衡策略——六种
- 2024-10-14 我们耳熟能详的负载均衡,你该如何配置?
- 2024-10-14 详解Nginx负载均衡的4种方案(详解nginx负载均衡的4种方案是)
- 2024-10-14 【Nginx基础】Nginx常见负载均衡策略配置示例
- 2024-10-14 nginx配置负载均衡 以及宕机了后,怎么配置高可用
- 2024-10-14 Nginx总结(六)nginx实现负载均衡(nginx的负载均衡怎么做)
- 2024-10-14 Nginx 负载均衡详解(nginx负载均衡详解)
- 2024-10-14 nginx服务器负载均衡配置(nginx负载均衡配置详解)
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)