Nginx 本地建立负载均衡(Windows环境)
需求:
现在有个需求:两台服务器,建立负载均衡。
A服务器:IP:localhost;负载均衡主服务器;代理本地文件夹D:\\SampleData
B服务器:IP:10.10.10.10;代理本地文件夹D:\\SampleData
解决方案:
本来想启动一个nginx搞定问题,但是搜集资料发现,nginx负载均衡指向的都是ip地址,没有本地+ip的负载均衡方式。(不知到底有没有这样的方法)
故本文采用主服务器上启两个nginx,分别给不同端口,一个代理本地文件夹,一个做负载均衡。
操作:
1、A服务器上启动一个nginx代理,端口改为8088;(代理设置不会的,参看前一篇博文https://www.cnblogs.com/giser-s/p/11308680.html)
2、B服务器上启动一个nginx代理,端口改为8088;
3、A服务器上重新复制粘贴一份到另外的位置,再启动一个nginx代理,端口默认80,修改nginx.conf;
4、A服务器上重新读取一下配置文件,并重启
5、A服务器上输入http://localhost进行验证
说明:
负载均衡有不同的设置:
1、热备:当A服务器出故障时,才会切到B服务器。AAA中断BBB
upstream mysvr {
server A;
server B backup;
}
2、轮询:默认服务器会默认按顺序调用服务。ABABAB
upstream mysvr {
server A;
server B;
}
3、加权:根据权重分配调用次数,默认为1。ABBABBABB
upstream mysvr {
server A weight=1;
server B weight=2;
}
4、down:表示暂不参与负载均衡。AAA
upstream mysvr {
server A;
server B down;
}
5、max_fails:表示请求失败的次数,默认为1。当超过次数调用下一个。
upstream mysvr {
server A;
server B max_fails=2;
}
6、max_timeout:表示经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
upstream mysvr {
server A weight=2 max_fails=2 fail_timeout=2;
server B weight=1 max_fails=2 fail_timeout=1;
}