nginx 负载均衡有10种方式
Nginx有多种负载均衡方式可以选择,以下是几种比较常用的方式:
1. 轮询 (Round Robin):默认方式,将请求轮流分配到不同的后端服务器上。
2. 最少连接 (Least Connections):将请求发送到连接数最少的后端服务器上。
3. IP Hash:通过客户端的IP地址来对请求进行哈希运算,以确定请求应该被分配到哪个后端服务器上。同一个IP地址始终被分配到同一个后端服务器上,可以解决session问题。
4. 加权轮询 (Weighted Round Robin):将请求按照权重分配到不同的后端服务器上。
5. 加权最少连接 (Weighted Least Connections):将请求发送到连接数最少的后端服务器,并根据权重对流量进行分配。
6. URL Hash:通过请求的URL来进行哈希运算,以确定请求应该被分配到哪个后端服务器上。同一个URL始终被分配到同一个后端服务器上。
7. Fair:按照后端服务器的响应时间来分配请求,响应时间短的服务器会被优先选择。
8. Sticky Session:将用户的请求发送到相同的后端节点,可通过将Session保存在后端节点或使用Cookie等方式实现。
9. Least Time:选择响应时间最短的后端服务器响应请求。
10. Random:随机选择一个后端服务器响应请求。
fair使用
本文主要介绍fair,自动把把请求转发到请求时间最短的服务器
Nginx的Fair负载均衡方式是基于ngx_http_upstream_module模块中的fair模块实现的。要使用Fair负载均衡方式,需要在Nginx中启用ngx_http_upstream_module模块,然后编译安装fair模块。
以下是安装fair模块的简单步骤:
1.下载Fair模块源代码:在 https://github.com/gnosek/nginx-upstream-fair/releases 下载最新版本的Fair模块源代码。
2.下载Nginx源代码:在 http://nginx.org/en/download.html 下载最新版本的Nginx源代码。
3.进入Nginx源代码目录:解压下载的Nginx源码并进入解压后的目录。
4.编译安装Fair模块:执行以下命令来编译并安装Nginx及Fair模块:
./configure --add-module=<path_to_fair_module> && make && make install
其中,<path_to_fair_module>为Fair模块源代码的路径。
安装完成后,就可以在Nginx配置文件中使用fair指令,并启用Fair负载均衡方式了。例如:
http { upstream backend { fair; server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } }
在这个示例配置中,upstream中使用了fair指令开启Fair负载均衡方式。fair指令默认情况下会使用第一个后端服务器作为起点,之后每个请求都会选取响应时间最短的后端服务器。当后端服务器的响应时间相同时,fair指令会轮流分配请求。