Maison  >  Article  >  Opération et maintenance  >  Que signifie la mise à jour chaude de nginx ?

Que signifie la mise à jour chaude de nginx ?

(*-*)浩
(*-*)浩original
2019-06-06 13:37:104862parcourir

La mise à jour à chaud de Nginx consiste à mettre à jour directement le système d'exploitation sans fermer le logiciel. Pendant la période de mise à jour, le logiciel est utilisé directement. NginX adopte le modèle multi-processus Master/Worker Le processus Master est responsable de la gestion de l'ensemble du processus NginX. La modularité, la mise à jour à chaud, le flux de traitement HTTP, la journalisation et autres mécanismes de Nginx sont tous très classiques.

Que signifie la mise à jour chaude de nginx ?

Mise à jour à chaud de la configuration

Une fois la configuration NginX modifiée, mettez-la à jour sans affecter le service actuel.

Signal : HUP

Processus : divisé en partie maître et partie ouvrière.

Processus Matser :

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的进程进行发送信号。

Processus ouvrier :

1> 通过ngx_signal_handler解析出为QUIT信号,置ngx_quit=1
2> 调用ngx_close_listening_sockets关闭监听端口。设置ngx_exting=1
3> 如果定时器红黑树中为空,执行ngx_worker_process_exit退出。

Remarque :

进程状态标识: 
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热更新。

Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel d'utilisation de Nginx pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que signifie nginx/1.12.2 ?Article suivant:Que signifie nginx/1.12.2 ?