nginx 的基础知识(一)

Nginx 

  • HTTP 和 反向代理web服务器
  • epoll
  • 占用少的系统资源、支持更多的并发连接
  • 负载均衡
  • 安装简单、配置灵活
  • 热部署、启动快、不间断服务情况下对软件配置进行升级

反向代理

  • 反向代理 客户端-> 代理<->服务器
  • Nginx 没有自己的地址,它的地址就是服务器的地址
  • Nginx 明确知道应该要去哪个服务器获取数据
  • 正向代理 客户端 <-> 代理->服务器
  • 客户端明确访问的服务器的地址,屏蔽真实客户端信息

正反向代理使用场景

  •  正向代理 客户端明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体客户端;屏蔽真实的客户端信息;代理的是客户端
    • 访问无法访问的资源
    • 缓存、加速访问资源
    • 对客户端授权访问、上网认证
    • 代理可以记录用户访问记录、对外隐藏用户信息
  • 反向代理 代理的是服务端;对外隐藏服务器的信息
    • 内网安全,反向代理作为公网访问地址,web服务器是内网
    • 负载均衡
  • 在实际场景中正向代理和反向代理可能在同一个应用场景中,正向代理代理客户端访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器

热部署

  • nginx支持热加载 热部署,在不打断用户请求的情况下更新版本
  • nginx 内部进程主要有俩类,master进程 worker进程(多个)
  • worker进程才是真正working进程,worker进程全部都是master进程的子进程,worker是以普通用户身份进行运行的,被劫持也不会有管理员权限
  • nginx 热部署与其并发模型存在密不可分的关系,因为master进程的关系,通知nginx重新读取配置文件时,master会进行语法错误的判断,如果存在语法错误的话,返回错误,不进行装载;配置文件无语法错误,则nginx也不会将新配置调整到所有worker中。而是先不改变已经建立连接的worker,等待worker将所有请求结束之后,在旧配置启动worker kill,在使用新的配置创建新的worker
  • cp 拷贝nginx旧版本二进制文件
  • cp -f 替换二进制文件
  • ps -ef 查看进程
  • kill -usr2 旧版本主进程号 旧版本worker进程不再接受请求
  • kill -winch 旧版本主进程号 关闭旧版本worker进程
  • cp 拷贝旧进程二进制文件 覆盖 实现回退
  • kill -hup 旧版本进程号,拉起旧版进程 

负载均衡

  • 硬件负载均衡(F5),软件负载均衡(消息队列分发机制)
  • weight 轮询,接收到的请求按照顺序,逐一分配到不同的后端服务器,在使用过程中,某一台服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到影响,在这种方式下,可以给不同的后端服务器设置一个权重值,用于调整不同服务器上请求的分配率,权重数据越大,被分配到请求的几率越大,主要根据机器性能进行配置的
  • ip-hash 每个请求按照发起客户端的ip hash结果进行匹配,下一个固定ip地址的客户端就会访问到同一个后端服务器,集群部署下session共享的问题
  • fair 智能调整算法,动态根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,处理效率低的服务器分配到的请求少,默认不支持,需要upstream-fair模块
  • url-hash 按照访问的url hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx做为静态服务器的情况下提高缓存效率,需要安装nginx的hash包

 

posted @ 2021-05-25 17:10  简直😓  阅读(102)  评论(0编辑  收藏  举报