Nginx相关概念及负载均衡策略

正向代理:
正向代理类似于一个跳板机,代理访问外部资源,如当前计算机不能访问某一个目标网站,而有一台服务机器可以访问目标网站,此时要我们要访问目标服务器时,可以通过代理服务器,把我们无法获取的数据返回给我们。
方向代理(Reverse Proxy)
反向代理方式是指以代理服务器来接受Internet的连接请求,然后将请求转发给内部网络的服务器上,,并将服务器上的响应结果返回给Internet上的连接请求的客服端,此时代理服务器对外就表现为一个反向代理服务器。

Nginx主要运用:

  1. 静态网站的部署
  2. 服务端的负载均衡
  3. 静态代理
  4. 虚拟主机

硬件的负载均衡:

  • 如:F5,深信服,Array等。
  • 优点:有厂商专业的技术支持服务团队提供技术支持,性能表现稳定。
  • 缺点:费用昂贵。对于规模较小的网络运用成本较高。

软件负载均衡:

  • 如:Nginx,LVS,HAProxy等。
  • 优点:开源免费,成本低廉。

nginx总并发数计算和配置:

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}



Nginx的并发总数max_conn = worker_processes * worker_connections ,但是当max_conn 值过大时,需要ulimit -HSn number来调整然后重新启动。具体如何配置请看配置连接写的很详细。

Nginx负载均衡

  1. 轮询算法(Round-Robin)
    Nginx 默认采取的负载均衡手段为轮询, 轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。
    算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。
    配置实例如下:
upstream backend {
    server backend1.example.com;
    server backend2.example.com:8080;
    server unix:/tmp/backend3;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
  1. 加权轮询算法(WeightedRound-Robin)
    请求按一定的比例分布 请求不同的后端服务器,weight值越大访问的比例越大,使用与后端服务器性能不均的情况。
    哦诶之实例如下:
upstream backend {
    server backend1.example.com       weight=5;
    server backend2.example.com:8080  weight=3;
    server unix:/tmp/backend3  weight=1;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
  1. 最少连接数:
    请求会被转发到连接数较少的服务器上。
    配置实例:
upstream backend {
    least_conn;

    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
    server backend4.example.com;
}
server {
    location / {
        proxy_pass http://backend;
    }
}
  1. ip_hash:
    ip_hash也叫ip绑定,每一个请求按访问的IP的hash值分配,这样每一个访问的客户端会固定访问一个后端。
    配置实例如:
upstream backend {
    ip_hash;

    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
    server backend4.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值