一、
nginx在开发中被越来越多的使用到,负载均衡,统一网关、静态资源服务器等等,
这里要说的是一个命令,通过这个命令来实现,服务的热部署,热部署的原理就是通过其多进程模型实现
来看看多进程模型的解释(这里摘录其他博主的文章):
Nginx 在启动后,会有一个 master 进程和多个 worker 进程。
master 进程主要用来管理worker 进程,包括接收来自外界的信号,向各 worker 进程发送信号,监控 worker 进程的运行状态以及启动 worker 进程。
worker 进程是用来处理来自客户端的请求事件。多个 worker 进程之间是对等的,它们同等竞争来自客户端的请求,各进程互相独立,一个请求只能在一个 worker 进程中处理。worker 进程的个数是可以设置的,一般会设置与机器 CPU 核数一致,这里面的原因与事件处理模型有关
Nginx 的进程模型,可由下图来表示:
通过上图所示的进程之间的关系:
这种设计带来以下优点:
1) 利用多核系统的并发处理能力
现代操作系统已经支持多核 CPU 架构,这使得多个进程可以分别占用不同的 CPU 核心来工作。Nginx 中所有的 worker 工作进程都是完全平等的。这提高了网络性能、降低了请求的时延。
2) 负载均衡
多个 worker 工作进程通过进程间通信来实现负载均衡,即一个请求到来时更容易被分配到负载较轻的 worker 工作进程中处理。这也在一定程度上提高了网络性能、降低了请求的时延。
3) 管理进程会负责监控工作进程的状态,并负责管理其行为
管理进程不会占用多少系统资源,它只是用来启动、停止、监控或使用其他行为来控制工作进程。首先,这提高了系统的可靠性,当 worker 进程出现问题时,管理进程可以启动新的工作进程来避免系统性能的下降。其次,管理进程支持 Nginx 服务运行中的程序升级、配置项修改等操作,这种设计使得动态可扩展性、动态定制性较容易实现。
我们呢就是通过这个特点来热切换配置文件实现服务部署等操作。
二、 实现的步骤:
1.修改原配置文件并上传到nginx的配置文件位置
2.部署新项目到服务器(不要和原服务在同一端口)
3.切换到sbin目录下(该目录下有可执行的nginx的二进制文件)执行 :nginx -s reload 命令
4.打完收工 ,可以查看服务的启动情况 netstat -lptn 命令
5.通过nginx访问新服务测试
服务热部署搞定!!!!
ps:本文有摘抄其他博主的部分这里贴出连接 https://www.cnblogs.com/kkzhilu/p/13637077.html