①首先安装Nginx
进入官网:nginx news
选择适合自己的版本安装,我选择的是1.18.0版本
安装完成后运行,浏览器中输入localhost,若弹出Nginx欢迎界面则安装成功。
②在nginx目录下打开conf文件,找到nginx.conf文件,以记事本方式打开(或是使用其他编辑软件)。
③为实现负载均衡,需要使用到nginx的upstream模块
这里我使用127.0.0.1:2321和server 127.0.0.1:2322两个IP做服务器
接着修改location后的路径
修改并保存,之后对于80端口的访问将通过负载均衡策略分配到2321和2322端口上
④配置并运行js文件
在任意目录下创建js文件,这里我命名为webserver1和webserver2
打开文件,进行内容自定义,监督端口设定和文本编辑
在js文件目录下打开cmd,输入node webserver1.js(需提前安装node),回车后运行http服务器:
同理,服务器2也跑起来:
至此,两个HTTP服务器已经启动完成,下面进行负载均衡实验。
⑤负载均衡策略
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器
修改nginx.conf文件
之后在cmd执行:nginx -s reload进行重载
对80端口测试:
可见,以 S1,S2,S1,S2,S1...的顺序进行轮询。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
同样修改nginx.conf文件
重载。
测试:
可见,S1访问几率明显高于S2
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
修改文件:
重载。
测试:
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
修改文件
重载。
测试:
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
不是很理解这种策略的实现方式,故没有下文,希望有大佬指导。