Beim Nginx-Hot-Update wird das Betriebssystem direkt aktualisiert, ohne die Software zu schließen. Während des Aktualisierungszeitraums wird die Software direkt verwendet. NginX übernimmt das Master/Worker-Mehrprozessmodell. Der Master-Prozess ist für die Verwaltung des gesamten NginX-Prozesses verantwortlich. Die Modularität, das Hot Update, der HTTP-Verarbeitungsablauf, die Protokollierung und andere Mechanismen von Nginx sind alle sehr klassisch.
Hot-Update der Konfiguration
Nachdem die NginX-Konfiguration geändert wurde, aktualisieren Sie sie, ohne den aktuellen Dienst zu beeinträchtigen.
Signal: HUP
Prozess: Unterteilt in Master-Teil und Worker-Teil.
Matser-Prozess:
1> 通过ngx_signal_hanlder解析出获取的信号,置ngx_reconfigure=1,标识Master要进行配置热更新操作。 2> 调用ngx_init_cycle初始化新的cycle(重新加载nginx.conf以及各模块的初始化)。 3> 调用ngx_start_worker_process启动新的Worker子进程,子进程标识just_respwan=1(NGX_PROCESS_JUST_RESPAWN)表示刚启动,区分新旧进程。 4> 调用ngx_start_cache_manager启动新的cache manager子进程和cache loader子进程。子进程标识just_respawn=1(NGX_PROCESS_JUST_RESPAWN)表示刚启动,区分新旧进程。 5> 睡眠100毫秒之后,调用ngx_signal_worker_process优雅的关闭老的worker、cache manager和cache loader进程。注意:只向just_respawn=0的进程进行发送信号。
Worker-Prozess:
1> 通过ngx_signal_handler解析出为QUIT信号,置ngx_quit=1 2> 调用ngx_close_listening_sockets关闭监听端口。设置ngx_exting=1 3> 如果定时器红黑树中为空,执行ngx_worker_process_exit退出。
Hinweis:
进程状态标识: NGX_PROCESS_RESPAWN -> respawn =1 表示子进程退出后 执行重启操作。 NGX_ PROCESS_JUST_RESPAWN -> just_spawn = 1 respawn = 1 表示子进程为刚创建的进程,已区别与老的子进程 以及子进程退出后 执行重启操作。 NGX_PROCESS_JUST_SPAWN -> just_spawn =1 表示子进程为刚创建的进程,已区别与老的子进程 NGX_PROCESS_DETACHED -> detached = 1 没有亲缘关系,不需要建立通信信道 譬如Binary热更新。
Weitere technische Artikel zum Thema Nginx finden Sie in der Spalte Tutorials zur Nginx-Nutzung, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonWas bedeutet Nginx-Hot-Update?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!