日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

>

nginx進程結構

Nginx系列:詳解進程結構和熱部署

linux 信號量管理機制

[root@VM-8-17-centos nginx]# kill -l 
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

常用信號量

代碼 編號 備注
SIGCHLD Kill -17 $PID 當子進程掛掉的時候,父進程會收到子進程的SIGCHLD信號
SIGQUIT Kill -3 $PID 和SIGINT類似, 但由QUIT字符(通常是Ctrl-/)來控制.
進程在因收到SIGQUIT退出時會產生core文件, 在這個意義上類似于一個程序錯誤信號
SIGTERM kill -15 $PID 程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理。(并不會立馬結束)
SIGKILL Kill -9 $PID 用來立即結束程序的運行. 本信號不能被阻塞、處理和忽略。
SIGHUP Kill -1 $PID 平滑重啟,重新加載配置文件 (平滑重啟,修改配置文件之后不用重啟服務器。
直接kill -PUT 進程號即可)
SIGUSR1 Kill -10 $PID 留給用戶使用,重新讀取日志文件,在切割日志時用途較大
(停止寫入老日志文件,打開新日志文件,之所以這樣是因為老日志文件就算修改的文件名,
由于inode的原因,nginx還會一直往老的日志文件寫入數據)
SIGUSR2 Kill -12 $PID 留給用戶使用,平滑升級可執行程序 ,nginx升級時候用
SIGWINCH Kill -28 $PID 窗口大小改變時發出,平滑升級可執行程序 ,nginx升級時候用

Nginx系列:詳解進程結構和熱部署

[root->mcode-server->~]# ps -ef  | grep nginx 
root      8225     1  0 21:58 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     8226  8225  0 21:58 ?        00:00:00 nginx: worker process
nginx     8227  8225  0 21:58 ?        00:00:00 nginx: worker process
root      8503  7810  0 22:08 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# kill -15 8225
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8509  7810  0 22:08 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8561     1  0 22:09 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     8563  8561  0 22:09 ?        00:00:00 nginx: worker process
nginx     8573  8561  0 22:10 ?        00:00:00 nginx: worker process
root      8621  7810  0 22:11 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# kill -s SIGTERM 8561
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8784  7810  0 22:17 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# systemctl  start nginx 
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8801     1  0 22:17 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     8802  8801  0 22:17 ?        00:00:00 nginx: worker process
nginx     8803  8801  0 22:17 ?        00:00:00 nginx: worker process
root      8805  7810  0 22:17 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# kill -s SIGHUP 8801
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8801     1  0 22:17 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     8810  8801  0 22:18 ?        00:00:00 nginx: worker process
nginx     8811  8801  0 22:18 ?        00:00:00 nginx: worker process
root      8813  7810  0 22:18 pts/0    00:00:00 grep --color=auto nginx
[root->mcode-server->~]# nginx -s reload 
[root->mcode-server->~]# ps -ef  | grep nginx 
root      8801     1  0 22:17 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     8900  8801  0 22:21 ?        00:00:00 nginx: worker process
nginx     8901  8801  0 22:21 ?        00:00:00 nginx: worker process
root      8903  7810  0 22:21 pts/0    00:00:00 grep --color=auto nginx

Nginx 配置文件重載的核心原理

  1. 語法檢查: 在進行配置文件重載之前,Nginx 首先會檢查新的配置文件的語法和合法性。這是為了防止錯誤的配置導致服務器無法啟動或異常運行。
  2. 備份舊配置: Nginx 會在進行重載操作前,備份當前正在使用的配置文件。這樣,在重載后如果出現問題,可以方便地回滾至舊的配置,確保系統的穩定性。
  3. 加載新配置: 一旦新配置文件通過語法檢查,Nginx 會將新的配置加載到內存中,但此時并不會立即應用到服務器。
  4. 發送信號給舊進程: Nginx 主進程會發送一個信號給舊的 worker 進程,要求它們完成未完成的請求并退出。這確保了舊的請求能夠平穩地完成,同時不再接受新的請求。
  5. 啟動新 worker 進程: 當舊的 worker 進程完成退出后,Nginx 會啟動新的 worker 進程,新進程將基于加載到內存中的新配置運行。
  6. 舊進程退出: 在新的 worker 進程準備就緒后,舊的主進程會退出,完成整個配置文件重載過程。

Nginx系列:詳解進程結構和熱部署

熱升級流程

1、將舊nginx文件替換成新nginx文件

mv /server/application/nginx/sbin/nginx /server/application/nginx/sbin/nginx_$(date +%F)
cp /server/download/nginx-1.25.2/objs/nginx /server/application/nginx/sbin/

2、向老master進程發送USR2信號

kill -USR2 `cat /var/run/nginx.pid`

3、master進程修改pid文件名,加后綴.oldbin(保存老pid文件)

ll /var/run/nginx.pid* # 會出現一個nginx.pid.oldbin

4、master進程用新nginx文件啟動新master進程。(目前為止有兩個master進程)

ps -ef  | grep nginx 

5、向老master進程發送WINCH信號,關閉老worker

 kill -WINCH `cat /var/run/nginx.pid.oldbin`

6、回滾:向老master發送HUP,向新master發送QUIT。

kill -HUP `cat /var/run/nginx.pid.oldbin` # 使用HUP重新加載配置文件,使用新的配置,并逐步關閉舊進程
kill -QUIT `cat /var/run/nginx.pid.oldbin` # 等待請求處理結束后再退出

>

分享到:
標簽:服務器 結構 詳解 進程 部署
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定