目录

  • 负载均衡实验踩坑实录及小结
  • 踩坑实录
  • nginx学习
  • 正向代理与反向代理
  • 几种均衡策略
  • 来源及引用


负载均衡实验踩坑实录及小结

踩坑实录

  1. 配置单机nginx环境

  • apt-get源提示不安全,把https更换成http。Ubuntu下修改/etc文件夹下文件都要root权限,可以sudo su先进root权限。
  • nginx单机80端口被占用。其实多重启几次nginx就能绑上
  1. 三机环境配置

master做负载均衡器,slaves做服务器。需要多机能ping通。

:很容易静态IP或者mac地址没有修改,虚拟机名字要能明显区分各主机,防火墙没关。可以不用着急克隆,先完成对单机尽可能多的配置再克隆,减少冗余操作。克隆选链接克隆或者完整克隆都行,有点类似变量深浅拷贝的区别,但是文件系统是隔离的。

一个有用的blog:多机连接网络环境配置

  1. 负载均衡文件配置
  • 负载均衡器的配置
http {
…
    upstream nodes {
        server 192.168.3.37:8080;
        server 192.168.3.38:8080;
    }
    server {
        listen 8080;
        server_name 192.168.3.36;
        location / {
            proxy_pass http://nodes; //请求转向nodes定义的服务器列表
            include proxy_params; #需手动创建此文件
        }
    }
}

upstream块内定义了转向的节点,即服务器,负载均衡器对监听的端口会进行转发

均衡器可以定义代理请求头的一些参数,e.g.

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
  • 服务器的配置
server {
    listen 8080;
    server_name 192.168.3.37;
    location / {
        root /etc/nginx/node; //自行设置目录
        index index.html index.htm;
    }
}

服务器监听端口访问根目录会提供指定目录下的指定文件(location中定义)进行响应,编写一个能区分不同主机的html页即可。

  1. 验证
    能ping通且nginx文件配置正确,访问均衡器的指定端口,反复刷新可以看到负载被发送到不同的服务器上(默认策略是轮询),大概如下图所示:

路由 负载均衡 map 路由负载均衡实验_路由 负载均衡 map

nginx学习

正向代理与反向代理

  • 正向代理:为客户端做代理,常用场景可以反向代理:为服务器做代理,负载均衡就是典型的nginx进行了反向代理

几种均衡策略

  • 加权轮询

在上述的upstream块内设置weight即可

upstream nodes {
        server 192.168.3.37:8080 weight=3;
        server 192.168.3.38:8080 weight=7;
    }

则node1以30%的概率被访问到,node2故70%

这种轮询存在session信息丢失的问题

  • ip_hash

加入关键字即可,效果为相同源的IP相同,hash桶相同,也就访问了相同的服务器

upstream nodes {
	ip_hash;
    server 192.168.3.37:8080 weight=3;
    server 192.168.3.38:8080 weight=7;
}
  • fair

同理加关键字即可,访问策略是优先访问响应时间短的服务器

  • 设置一些备用机器

backup关键字,有冷备份热备份什么的,不参与负载之间用down

来源及引用

  • Source: HIT-软件架构与中间件lab2
  • Reference: slides and some blogs