温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

掌握之分布式-5.Nginx

发布时间:2020-07-04 16:56:05 来源:网络 阅读:177 作者:学习Lr 栏目:编程语言

掌握高并发、高可用架构

第三章 分布式

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

第五节 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;
    }
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI