掌握之分布式-5.Nginx

掌握高并发、高可用架构

第三章 分布式

本章介绍分布式架构的底层技术。主要说明面试过程中可能被问到的技术点。

第五节 NGINX

nginx 反向代理

1. 正向代理和反向代理的区别

正向代理,指在客户端,代替客户端收发请求,使得真实客户端对服务器不可见。

反向代理,指在服务器端,代替服务器收发请求,使得真实服务器对客户端不可见

2. nginx是什么

nginx是一个高性能的HTT服务器、电子邮件(IMAP/POP3)代理服务器、非常高效的反向代理服务器

3. nginx的特性
  • 异步、事件驱动、非阻塞
  • 并发请求处理,通过epoll/select
  • 文件IO
  • 高度模块化
4. 支持的并发数

每秒十万级别

5. nginx的使用场景
  • 静态资源服务器,例如图片、网站静态资源(css、js等)
  • 反向代理服务器,实现负载均衡
6. 支持的负载均衡策略(upstream)
  • 轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器

  • 权重(weight),指定服务器的权重,数值越大的访问机率越多,用于服务器性能不均衡的情况

    upstream domain {
      server 127.0.0.1:8080 weight=5;
      server 127.0.0.1:8040 weight=1;
    }
  • ip_hash,每个请求按照访问IP的hash值进行分配,这样每个客户端IP就会固定访问一台服务器

    upstream domain {
      ip_hash;
      server 127.0.0.1:8080;
      server 127.0.0.1:8040;
    }
  • fair(第三方提供),按照服务器的响应时间来分配请求,响应时间短的优先分配

  • url_hash(第三方提供),按照每个请求的URL的hash值进行分配,每个URL固定访问一台服务器

upstream还支持以下的状态值:

  • down,表示当前的server不参与负载

  • max_fails,允许请求失败的次数

  • fail_timeout,max_fails后,暂停负载的时间

  • backup,备用,当其他非backup的server处于down或忙的时候,启用该server

    upstream domain {
      server 127.0.0.1:8080 down;
      server 127.0.0.1:8080 max_fails=3;
      server 127.0.0.1:8080 fail_timeout=10;
      server 127.0.0.1:8080 backup;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值