nginx 负载包括四种:
1、轮询 按照请求时间逐一分配到不同的后端服务器; 2、ip_hash 当调度为ip_hash时;后端服务器调度状态不能是 weight 和 backup 3、fair 是根据 页面大小 和加载时间进行只能的负载;也就是根据响应时间分配;nginx本身不支持fair,需要下载nginx的 upstream_fair模块; 4、url_hash 按访问URL的hash结果来分配;每一个URL定向到同一个后端服务器;
upstream 是nginx 的和http upstream模块的,通过一个简单的调度计算来实现客户端IP到后端服务器的负载均衡;
upstream www1.com { // 定义负载均衡名称 www1.com ip_hash; // 每个请求按访问IP的哈希结果分配 同一个IP访问固定访问一个后端服务器,有效解决了动态网页存在的session(会话)共享问题; server 192.168.0.11:80 ; server 192.168.0.12:80 down; // down 表示当前 server暂时不参与负载均衡;backup 参数表示预留备份机器; server 192.168.0.13:80 max_fails=3 fail_timeout=20s; // max_fails 表示请求失败次数 fails_timeout 失败孩子后暂停服务的时间; }
配置 示例
server { listen 808; server_name www.1234567.com; location / { proxy_pass http://test; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } } upstream test{ #server 172.16.2.11:808; server 172.16.2.13:808; server 172.16.2.14:808; server 172.16.2.15:808; }