负载均衡

最后更新于:2022-04-02 02:54:30

[TOC] ## 负载均衡 ### RR(默认) 1. 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除 2. 可以配置在虚拟站点下, 但是此时只会走8080 或者8081 81端口本身不会成为站点 ``` upstream test { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 81; server_name 127.0.0.1; client_max_body_size 1024M; location / { proxy_pass http://test; proxy_set_header Host $host:$server_port; } } ``` >当访问calohost:81时,如果localhost:8081 挂了,也不会影响正常访问 ### 权重 ``` upstream test { server localhost:8080 weight=9; server localhost:8081 weight=1; } ``` >10次一般只会有1次会访问到8081,而有9次会访问到8080 ### ip_hash PR 和权重 在有`session` 进行访问时,由于随机访问,导致`session`无效,需要使用`ip_hash` ``` upstream test { ip_hash; server localhost:8080; server localhost:8081; } ``` ### fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 ``` upstream backend { fair; server localhost:8080; server localhost:8081; } ``` ### url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。 ``` upstream backend { hash $request_uri; hash_method crc32; server localhost:8080; server localhost:8081; } ```
';