利用Nginx反向代理做负载均衡
1、在http节点下设置upstream
upstream nginxURL{ server 192.168.2.136:8088; server 192.168.2.136:8080; }
2、在server节点location中配置代理转发
server{ listen 8088; server_name 192.168.2.24:8088; location / { proxy_pass http://nginxURL; } }
3、接下来在客户端访问http://192.168.2.24:8088/nginx/**时,nginx将会转发至192.168.2.136:8088/nginx/**或者192.168.2.136:8080/nginx/**
需要注意点
- 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,标示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假如用 http://192.168.2.24:8088/nginx/log进行访问
第一种: location /nginx/ { proxy_pass http://nginxURL/; } 代理到URL:http://192.168.2.136/log 第二种(最后少一个 / ,常用于更换ip指向) location /nginx/ { proxy_pass http://nginxURL; } 代理到URL:http://192.168.2.136/nginx/log 第三种(常用于变更ip指向+路径): location /nginx/ { proxy_pass http://nginxURL/AAA/; } 代理到URL:http://192.168.2.136/AAA/log 第四种(相对于第三种,最后少一个 / ) location /nginx/ { proxy_pass http://nginxURL/AAA; } 代理到URL:http://192.168.2.136/AAAlog
4、负载均衡算法
- 轮循+weight 默认的
- ip_hash :基于Hash计算,保持session一致性
- url_hash(第三方) 静态资源缓存,节约存储,加快速度
- least_conn 最少链接优先
- least_time 最少响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重。