nginx负载均衡及配置

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: nginx负载均衡及配置1 负载均衡概述 负载均衡由来是因为当一台服务器单位时间内的访问量很大时,此时服务器的压力也会验,就诞生了负载均衡来分担服务器压力.

nginx负载均衡及配置

1 负载均衡概述

    负载均衡由来是因为当一台服务器单位时间内的访问量很大时,此时服务器的压力也会
验,就诞生了负载均衡来分担服务器压力.
    负载均衡实质上就是用反向代理的原理实现的,是一种优化服务器资源,合理处理高并发
nginx作为一种高效的HTTP负载均衡服务器,将流量分配到多个应用服务器上以提高性能,可扩展和高可用性.

    原理: 内网可以建很多服务器,组成服务器集群,当用户访问该网站时,先访问公网中间
访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

    nginx反向代理实现包括下面这些负载均衡HTTP、HTTPS、FastCGI、uwsgi,SCGI和memcached。
要配置HTTPS的负载均衡,只需使用'http'开头的协议。
当要设置FastCGI,uwsgi,SCGI,或者memcached的负载平衡,分别使用
fastcgi_pass,uwsgi_pass,scgi_pass和memcached_pass指令。

2 负载均衡的常见平衡机制

1 轮询(round-robin) :以轮询方式将请求分配到不同服务器上,每个请求按时间顺序逐一分配到不同的后端服务器, 如果后端服务器挂掉,自动剔除,保证正常的服务。


配置1:
upstream server_back {  #nginx分发服务请求
    server 192.168.162.49;
    server 192.168.162.50;
}

配置2:
http {
    upstream servergroup {  # 服务组接受请求,nginx轮询分发服务请求
        server srv1.demo.com;
        server srv2.demo.com;
        server srv3.demo.com;
    } 
    server {
        listen 80;
        location / {
            proxy_pass http://servergroup; #所有的请求被代理到servergroup服务组
        }
    }
}
 proxy_pass  后面是被代理的服务器ip,也可以是主机名,域名,ip端口模式
 upstream    设定负载均衡后台服务器列表

2 权重负载均衡(weight):如果没有配置权重,每个服务器的负载都是一样的,当出现服务器性能不均时,采用 权重轮询,指定的服务器的权重参数,权重占比为负载均衡决定的一部分。权重大负载就大。

upstream server_back { 
    server 192.168.162.49 weight=3;
    server 192.168.162.50 weight=7;
}

3 最少连接数(least-connected):将下一个请求分配到连接数最少的那台服务器上,当一些请求需要更长的时 间响应, 最少连接可以更公平地控制应用程序实例的负载。nginx会将请求转发到负载较少的服务器。

upstream servergroup { 
        least_conn;
        server srv1.demo.com;
        server srv2.demo.com;
        server srv3.demo.com;
    } 

4 ip-hash :基于客户端的IP地址。原因时负载均衡每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样明显不太妥。采用ip_hash解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。

每个请求按照IP hash的结果分配,因此请求被固定到某一个后端服务器,也可以解决session问题

upstream servergroup { 
        ip-hash;
        server srv1.demo.com;
        server srv2.demo.com;
        server srv3.demo.com;
    } 

附上一个实例:

#user  nobody;
worker_processes  4;
events {
    # 最大并发数
    worker_connections  1024;
}
http{
    # 待选服务器列表
    upstream myserver{
        # ip_hash指令,将同一用户引入同一服务器。
        ip_hash;
        server 125.219.42.4 fail_timeout=60s; #max_fails失败后暂定时间60s
        server 172.31.2.183;
        }

    server{
                # 监听端口
                listen 80;
                # 根目录下
                location / {
                    # 选择哪个服务器列表
                    proxy_pass http://myserver;
                }
            }
}

max_fails  允许请求失败的次数默认为1
fail_timeout=60s  fail_timeout=60s失败暂停的时间 
down 表示当前的服务器暂时不参与负载 
backup  所有非backup机器忙的时候会请求backup,因此其压力会最轻

参考:http://www.ttlsa.com/nginx/using-nginx-as-http-loadbalancer/ 非常感谢

更多:http://nginx.com/blog/load-balancing-with-nginx-plus/

http://nginx.com/blog/load-balancing-with-nginx-plus-part2/

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
123 59
|
26天前
|
负载均衡 网络协议 网络安全
SLB-Backend多实例部署配置健康检查
【10月更文挑战第22天】
54 3
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
279 0
|
15天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
7天前
|
负载均衡 应用服务中间件
slb何时需要配置健康检查域名
slb何时需要配置健康检查域名
20 3
|
28天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
142 1
nginx配置反向代理404问题
|
21天前
|
弹性计算 负载均衡 算法
slb 配置不当
【11月更文挑战第2天】
32 10
|
13天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
60 1
|
22天前
|
负载均衡 监控 应用服务中间件
slb配置同步问题
【11月更文挑战第1天】
27 3