架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12272|回复: 2

[Web] 【实战】nginx 高可用负载均衡配置

[复制链接]
发表于 2020-6-14 11:50:26 | 显示全部楼层 |阅读模式
一直使用阿里云的负载均衡,已经用了6年多的时间,使用nginx也有6年多的时间,今天实际测试一遍负载均衡配置。

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

简单说,就是将多个请求分发到后端不同的服务器上面,实现每台服务器压力减少,实现高可用,即使一台服务器挂掉也没有影响。

首先

我本机安装了node.js,安装http-server来模拟出两个web容器。(使用iis,或者自己用代码实现http协议都可以)

安装完node.js,执行如下命令:

window下,nodejs 安装 http-server,开启HTTP服务器
https://www.itsvse.com/thread-6838-1-1.html

模拟后端两个站点

我在 E:\wwwroot 目录下面,新建了两个文件夹 site1 和 site2,文件夹里面各放置了一个 index.html 文件。

QQ截图20200614113001.jpg

内容分别是:index 1 by:itsvse.com 和 index 2 by:itsvse.com


然后,通过如下命令监听两个http端口,开启两个站点。

尝试分别访问两个站:http://127.0.0.1:8081/ http://127.0.0.1:8082/ 效果图如下:

QQ截图20200614113407.jpg

NGINX 负载均衡配置

下载 Windows 版本的 nginx,地址: http://nginx.org/en/download.html

下载后,解压到 E:\wwwroot\nginx-1.18.0 目录。修改 E:\wwwroot\nginx-1.18.0\conf\nginx.conf 文件,如下:



通过如下命令启动nginx程序:

QQ截图20200614113856.jpg

nginx -s stop        fast shutdown
nginx -s quit        graceful shutdown
nginx -s reload        changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes
nginx -s reopen        re-opening log files

通过浏览器访问nginx负载均衡站点:http://127.0.0.1:8080/

nginx.gif

我们多次刷新重新访问,发现,每次返回的内容都不同,可以看到nginx将不同请求分发到后端不同的http服务上面,尝试停止 site1 站点,可以看到并没有影响我们的正常访问,nginx将所有的请求转发到了 site2 站点

Nginx负载均衡配置状态
状态 概述
down 当前的server暂不参与负载均衡
backup 预留的备份服务器,当其他服务器都挂掉的时候,启用
max_fails 允许请求失败的次数 ,如果请求失败次数超过限制,则进过fail_timeout 时间后从虚拟服务池中kill掉该服务器
fail_timeout 经过max_fails失败后,服务暂停时间,max_fails设置后,必须设置fail_timeout 值
max_conns 限制最大的连接数,用于服务器硬件配置不同的情况下


Nginx负载均衡调度策略

调度算法 概述
轮询 逐一轮询,默认方式
weight 加权轮询,weight越大,分配的几率越高
ip_hash 按照访问IP的hash结果分配,会导致来自同一IP的请求访问固定的一个后台服务器
url_hash 按照访问URL的hash结果分配
least_conn 最少链接数,那个服务器链接数少就会给分配
hash关键数值 hash自定义的key


关于 nginx 更多配置参见:http://nginx.org/en/docs/http/load_balancing.html





上一篇:【实战】Nginx 日志拆分和删除
下一篇:ITO BPO KPO 三者的概念和区别
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-3-16 15:48:20 | 显示全部楼层
nginx: [emerg] CreateFile() "C:\360安全浏览器下载\nginx-1.18.0/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
nginx: configuration file C:\360安全浏览器下载\nginx-1.18.0/conf/nginx.conf test failed
微信截图_20210316151526.jpg

nginx 路径不能由中文
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-1-10 19:31:52 | 显示全部楼层
【实战】Keepalived 和 Nginx 之 Web 高可用教程
https://www.itsvse.com/thread-10118-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-6-18 12:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表