JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

nginx 代理设置二 之负载均衡配置

wys521 2024-09-11 13:33:50 精选教程 28 ℃ 0 评论

nginx除了可以作为代理服务器之外,还可以给代理设置负载均衡

nginx代理中常见的负载有:

1、round-robin 轮询

2、least-connected 最少连接

3、ip-hash ip哈希

最简单的负载配置:

如果没有指定负载均衡算法,默认是 轮询负载(round-robin)

http {
  #myapp1 upstream的名字,upstream中的每个server对应一个真实的后端地址
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1; #此处的域名跟http模块中设置的upstream名对应
        }
    }
}

此外还可以设置权重(weight=数值),意思是可以在随机中修改某一个后端服务的比重:

upstream myapp1 {
        server srv1.example.com weight=3;
        server srv2.example.com;
        server srv3.example.com;
 }
这样设置之后,意味着,5个请求中有3个由服务1处理,服务2与服务3各分别处理一个,
【ip_hash与least_conn中是否可用?大家可以一试】

最少连接数配置(least_conn)负载配置

把请求分配给负载不那么重的后端服务中,避免请求发到负担较重的服务器上

    upstream myapp1 {
        least_conn;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

ip_hash方式配置:

ip_hash是指以客户端请求IP地址作为hash key,以决定由upstream中的哪一个服务后端进行请求处理,由于IP不变,所以每次hash的结果也不会变,所以,每次客户端的请求都会由同一个后端服务处理(除非这个后端服务不可用),这对于那些需要session 粘性的请求来说是最好的选择

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}
如果192.168.18.130 hash之后由srv1处理,那每次都会由srv1处理

此外:

nginx代理中常见的指令设置(请求头、响应头、各种超时设置)等可链接此处

nginx https配置可链接此处

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表