需求:

现在有个需求:两台服务器,建立负载均衡。

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;

Nginx 本地建立负载均衡(Windows环境)-LMLPHP

Nginx 本地建立负载均衡(Windows环境)-LMLPHP

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;
}

05-15 14:11