Nginx服务器

1.Nginx简介

Nginx(发音为“engine-x”)是一个高性能的开源反向代理服务器(也可以用作负载均衡器)、Web服务器和邮件代理服务器。它被广泛用于构建高性能、可靠的Web应用程序和服务。

作为反向代理服务器,Nginx可以接收客户端请求并将其转发到后端的多个服务器上,实现负载均衡。它可以根据不同的策略将请求分发到不同的服务器,以实现最佳的性能和可用性。此外,Nginx还可以进行动态内容缓存,减轻后端服务器的负载。

Nginx还提供了一些高级功能,如URL重写、反向代理缓存、SSL/TLS加密、基于IP地址的访问控制等。它还支持动态模块化,可以通过加载不同的模块来扩展其功能。

在微服务架构中,Nginx可以用作微服务网关。它可以作为整个微服务架构的入口点,接收所有的客户端请求,并根据路由规则将请求转发到相应的微服务实例。通过 Nginx 的负载均衡功能,可以将请求分发到多个微服务实例上,以实现高可用性和可伸缩性。

优点:

高并发连接: 官方称单节点支持5万并发连接数,实际生产环境能够承受2-3万并发。
内存消耗少: 在3万并发连接下,开启10个nginx进程仅消耗150M内存 (15M×10=150M)
配置简单

2.基本架构

Master-Worker模式

Master-Worker模式是一种并行计算模式,它将任务的执行分为两个部分:Master(主节点)和Worker(工作节点)。

在Master-Worker模式中,Master负责任务的分配和调度,它将任务分解成较小的子任务,并将这些子任务分发给多个Worker节点进行并行处理。Master节点将收集和整合Worker节点的处理结果,并最终生成最终的结果。

Worker节点是执行实际任务的计算单元,它接收到Master节点分发的任务后,进行计算或处理,并将结果返回给Master节点。Worker节点可以是多个,并行地执行任务,从而提高整个系统的处理能力和性能。

Master-Worker模式适用于那些可以被分解成多个独立子任务的问题,而且这些子任务之间没有依赖关系,可以并行处理。该模式可以提高计算效率和系统的可扩展性,尤其在大规模计算或处理任务的场景下具有很好的应用前景。

需要注意的是,Master-Worker模式仅提供了任务的分配和调度机制,并不涉及具体的任务执行逻辑。具体的任务执行逻辑需要在Worker节点中实现。

2.1 角色功能

Master进程的主要职责包括:

  1. 启动和停止Worker进程:Master进程负责启动和停止Worker进程,以便处理来自客户端的请求。
  2. 接收和分发请求:Master进程接收来自客户端的请求,并将其分发给Worker进程进行处理。
  3. 管理Worker进程的状态:Master进程负责监控Worker进程的运行状态,如果有Worker进程出现异常或崩溃,Master进程会自动重启它们,以确保服务器的稳定运行。
  4. 处理信号:Master进程可以接收和处理来自操作系统的信号,例如重启服务器、重新加载配置文件等。

Worker进程的主要职责包括:

  1. 处理请求:Worker进程负责实际的请求处理和响应返回。它们接收Master进程分发的请求,并根据配置进行相应的处理,例如代理请求、处理静态文件、执行动态脚本等。
  2. 并发处理:Worker进程具有独立的执行环境,可以同时处理多个请求,从而实现并发处理能力。
  3. 缓存管理:Worker进程可以缓存一些静态资源,以提高访问效率和减轻服务器的负载。

Nginx支持热部署,可以在不停止服务器的情况下更新配置文件和应用程序。通过发送特定信号给Nginx进程,可以实现重新加载配置文件或者重新启动Worker进程。热部署功能使得更新变得方便和高效。