nginx訊號及平滑公升級

2022-08-17 21:27:12 字數 2528 閱讀 4571

1、nginx訊號

nginx程序處理命令:

kill -signals pid

pid即nginx程序id

signals的引數解釋如下所示:

term,int快速關閉程序

quit優雅的關閉,如果有請求則等待請求結束後停止

hup 過載新的配置檔案,對於舊的程序還用舊的配置檔案,新的程序會使用新的配置檔案

usr1重新開啟日誌檔案,常用於日誌切割

usr2 使用新版本的 nginx 檔案啟動服務,之後平緩停止原有的 nginx 程序,也就是所謂的「平滑公升級」

winch平緩停止 worker process,用於 nginx 伺服器平滑公升級

2、平滑公升級nginx

檢視現在nginx的版本和編譯引數

解壓並編譯

執行make但是不要執行make install

# make

備份老的nginx啟動檔案,並拷貝新的檔案

# cp /data/usr/nginx/sbin/nginx /data/usr/nginx/sbin/nginx.bak

# pwd

/data/usr/src/nginx-1.16.0

# cp -rpf objs/nginx /data/usr/nginx/sbin/nginx

使用新nginx啟動檔案,舊的nginx.pid檔案新增字尾.oldbin,變為nginx.pid.oldbin,然後執行新版本的二進位制檔案啟動服務,新的nginx啟動後將會有新舊兩個版本的服務提供服務。

# kill -usr2 `cat /data/logs/nginx/nginx.pid`

# ll /data/logs/nginx/nginx*

-rw-r--r-- 1 root root 5 sep  2 18:56 /data/logs/nginx/nginx.pid

-rw-r--r-- 1 root root 5 sep  2 18:51 /data/logs/nginx/nginx.pid.oldbin

平緩停止worker process ,平緩停止舊的nginx服務

# kill -winch `cat /data/logs/nginx/nginx.pid.oldbin`

# kill -quit `cat /data/logs/nginx/nginx.pid.oldbin`

檢視新版nginx的資訊

參考:

nginx平滑公升級

先來說下我今天要實驗nginx平滑公升級的環境,從nginx.1.8.0公升級到nginx1.9.5 大概的流程 nginx的程序分為master主程序和work工作程序,master程序主要管理事件訊號接受和分發,所有的請求處理都由work程序處理並返回結 果,nginx的平滑重啟或過載配置檔案等...

Nginx平滑公升級

原文 來自nginx官網 如果想要公升級nginx版本 或者在原本版上增加 刪除模組 同時保持服務不間斷,採用如下方式可滿足要求。1.使用新的二進位制檔案替換老的二進位制檔案,這需要注意的是nginx原始碼在執行make編譯後,不要直接make install,否則可能會覆蓋其他配置檔案,命令如下 ...

Nginx平滑公升級

有時,我們需要對我們的伺服器進行公升級更高版本。此時,如果我們強行將伺服器停止然後直接公升級,這樣原來在伺服器上執行著的程序就會被影響。如何解決這個問題呢?可以通過平滑公升級的方式來解決。平滑公升級時,不會停掉在執行著的程序,這些程序會繼續處理請求,但不會再接受新請求,在這些老程序在處理完還在處理的...