欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx基本命令&不停機(jī)版本升級(jí)

 更新時(shí)間:2023年08月30日 10:53:27   作者:fkjavaer  
這篇文章主要為大家介紹了Nginx基本命令&不停機(jī)版本升級(jí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Nginx基本命令&不停機(jī)版本升級(jí)

在上一篇文章【Linux】Ubuntu安裝Nginx(在線安裝&源碼編譯安裝)中,我們已經(jīng)通過(guò)源碼編譯安裝nginx,其nginx執(zhí)行文件的地址為:/usr/local/nginx

Nginx工作模型

我們先來(lái)看看nginx啟動(dòng)之后的進(jìn)程情況:

 ps -ef|grep nginx
 
 # 輸出結(jié)果
 root        1036       1  0 02:33 ?        00:00:00 nginx: master process ./nginx
 nobody      1037    1036  0 02:33 ?        00:00:00 nginx: worker process

可以看到,目前運(yùn)行的nginx存在一個(gè)master進(jìn)程和一個(gè)worker進(jìn)程,它們有著明確的分工:

  • master進(jìn)程:讀取和評(píng)估配置。
  • worker進(jìn)程:處理請(qǐng)求,工作進(jìn)程的數(shù)量可以在配置文件中定義。

 nginx采用基于事件的模型并依賴于操作系統(tǒng)的機(jī)制高效地在工作進(jìn)程之間分發(fā)請(qǐng)求。

Nginx基本命令

nginx命令

一般所有的軟件,都有類似于help的指令,nginx中我們使用nginx -h或者nginx -?即可進(jìn)行查看。

 # 先進(jìn)入nginx執(zhí)行文件目錄
 cd /usr/local/nginx
 # ./nginx -h
 Options:
   -?,-h         : this help
   -v            : show version and exit
   -V            : show version and configure options then exit
   -t            : test configuration and exit
   -T            : test configuration, dump it and exit
   -q            : suppress non-error messages during configuration testing
   -s signal     : send signal to a master process: stop, quit, reopen, reload
   -p prefix     : set prefix path (default: /usr/local/nginx/)
   -c filename   : set configuration file (default: /usr/local/nginx/nginx.conf)
   -g directives : set global directives out of configuration file

可以看到,nginx為我們列出了參數(shù)指令的含義。

參數(shù)

含義

-?,-h

查看幫助信息

-v

查看nginx版本

-V

查看nginx版本以及配置選項(xiàng)

-t

測(cè)試配置文件語(yǔ)法是否正確

-T

測(cè)試配置文件語(yǔ)法是否正確,并輸出配置內(nèi)容

-q

測(cè)試配置文件過(guò)程中不顯示非錯(cuò)誤信息

-s

向master進(jìn)程發(fā)送命令,stop:快速關(guān)閉,quit:優(yōu)雅關(guān)閉,reopen:重新打開日志,reload:重新加載配置文件

-p

設(shè)置nginx執(zhí)行路徑,默認(rèn)為/usr/local/nginx/

-c

以指定配置文件啟動(dòng)(
/usr/local/nginx/nginx.conf)

-g

從設(shè)置配置文件中全局指令(./nginx -g "pid logs/new.pid",便可以在啟動(dòng)nginx時(shí)修改配置文件中的默認(rèn)配置)

在工作中,可能經(jīng)常涉及到配置文件的修改,因此,使用比較多的命令:

 nginx -t

修改配置文件后,先測(cè)試配置文件語(yǔ)法的正確性

 nginx -s reload

修改配置文件后,通知master進(jìn)程重新加載配置文件,master進(jìn)程會(huì)啟動(dòng)新的worker進(jìn)程,并向舊的worker進(jìn)程發(fā)送關(guān)閉命令,舊的worker進(jìn)程收到關(guān)閉命令后,停止接收新的連接直到當(dāng)前工作結(jié)束后退出。

kill命令

除了使用nginx命令,我們還可以通過(guò)kill命令向nginx的master進(jìn)程和worker進(jìn)程發(fā)送信號(hào),其中某些命令的效果與執(zhí)行nginx -s signal的效果是一樣的。

master進(jìn)程支持的信號(hào):

信號(hào)

含義

TERM, INT

快速關(guān)閉。與nginx -s stop效果一致。kill -s TERM pid,kill -s INT pid

QUIT

優(yōu)雅關(guān)閉。與nginx -s quit效果一致。kill -s QUIT pid

HUP

重新加載配置,與nginx -s reload效果一致。kill -s HUP pid

USR1

重新打開日志。kill -s USR1 pid

USR2

升級(jí)nginx可執(zhí)行文件,可以用來(lái)不停機(jī)升級(jí)nginx版本。kill -s USR2 pid

WINCH

優(yōu)雅關(guān)閉worker進(jìn)程。kill -s WINCH pid

worker進(jìn)程支持的信號(hào):

信號(hào)

含義

TERM, INT

快速關(guān)閉。kill -s TERM pid,kill -s INT pid

QUIT

優(yōu)雅關(guān)閉。kill -s QUIT pid

USR1

重新打開日志。kill -s USR1 pid

WINCH

調(diào)試異常終止。kill -s WINCH pid

Nginx版本升級(jí)

1)查看當(dāng)前版本

 ./nginx -v
 nginx version: nginx/1.18.0

2)準(zhǔn)備新版本

下載鏈接:
http://nginx.org/download/nginx-1.22.1.tar.gz

3)解壓縮

 tar zxvf nginx-1.22.1.tar.gz

4)設(shè)置configure

 cd /home/stone/nginx-1.22.1/
 sudo ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid

5)編譯

 sudo make

升級(jí)過(guò)程,只需要編譯,不需要安裝,否則會(huì)覆蓋已經(jīng)安裝的版本

6)查看新編譯的版本

 cd objs/
 ls
 autoconf.err  Makefile  nginx  nginx.8  ngx_auto_config.h  ngx_auto_headers.h  ngx_modules.c  ngx_modules.o  src

可以看到,該目錄下也存在一個(gè)nginx文件,運(yùn)行nginx -v查看

 ./nginx -v
 nginx version: nginx/1.22.1

7)備份原nginx可執(zhí)行文件

如果后續(xù)升級(jí)失敗,還可以進(jìn)行版本回滾

 cd /usr/local/nginx
 sudo mv nginx nginx.bak

8)復(fù)制新的nginx可執(zhí)行文件進(jìn)行替換

 cd /home/stone/nginx-1.22.1/objs
 sudo cp nginx /usr/local/nginx/

9)查看當(dāng)前nginx進(jìn)程

 ps -ef|grep nginx
 # 輸出結(jié)果
 root        3253       1  0 11:07 ?        00:00:00 nginx: master process ./nginx
 nobody      3254    3253  0 11:07 ?        00:00:00 nginx: worker process
 stone      24596    3181  0 13:50 pts/1    00:00:00 grep --color=auto nginx

10)執(zhí)行升級(jí)命令

 sudo kill -s USR2 `more /usr/local/nginx/nginx.pid`

再次查看nginx進(jìn)程,可以看到創(chuàng)建了新的master進(jìn)程和worker進(jìn)程,與此同時(shí),也是將舊版本的nginx的pid保存到nginx.pid.oldbin中。

 ps -ef|grep nginx
 # 輸出結(jié)果
 root        3253       1  0 11:07 ?        00:00:00 nginx: master process ./nginx
 nobody      3254    3253  0 11:07 ?        00:00:00 nginx: worker process
 root       25675    3253  0 13:53 ?        00:00:00 nginx: master process ./nginx
 nobody     25676   25675  0 13:53 ?        00:00:00 nginx: worker process

我們可以查看一下這個(gè)文件,確實(shí),其記錄了舊版本的master進(jìn)程pid

 cat /usr/local/nginx/nginx.pid.oldbin 
 3253

此時(shí),所有的worker進(jìn)程(包括新的和舊的)繼續(xù)接收請(qǐng)求,我們可以向舊版本的master進(jìn)程發(fā)送WINCH命令以關(guān)閉其worker進(jìn)程。

 sudo kill -s winch `cat /usr/local/nginx/nginx.pid.oldbin`

再次查看nginx進(jìn)程,舊版本的worker進(jìn)程已經(jīng)優(yōu)雅退出,只剩下master進(jìn)程。

 ps -ef|grep nginx
 root        3253       1  0 11:07 ?        00:00:00 nginx: master process ./nginx
 root       25675    3253  0 13:53 ?        00:00:00 nginx: master process ./nginx
 nobody     25676   25675  0 13:53 ?        00:00:00 nginx: worker process

如果新版本的worker進(jìn)程運(yùn)行正常,那么我們就可以向舊版本的master進(jìn)程發(fā)送QUIT命令優(yōu)雅退出。

 sudo kill -s quit `cat /usr/local/nginx/nginx.pid.oldbin`

到這里,我們的nginx版本也就在不停機(jī)的情況下平滑升級(jí)完成了。

以上就是Nginx基本命令&不停機(jī)版本升級(jí)的詳細(xì)內(nèi)容,更多關(guān)于Nginx命令不停機(jī)版本升級(jí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • nginx中使用lua腳本的方法

    nginx中使用lua腳本的方法

    這篇文章主要介紹了nginx中使用lua腳本的方法,本文介紹通過(guò)第三方模塊lua-nginx-module實(shí)現(xiàn)lua腳本在nginx的調(diào)用,并附一個(gè)配置例子,需要的朋友可以參考下
    2014-07-07
  • Nginx配置同一個(gè)域名同時(shí)支持http與https兩種方式訪問(wèn)實(shí)現(xiàn)

    Nginx配置同一個(gè)域名同時(shí)支持http與https兩種方式訪問(wèn)實(shí)現(xiàn)

    這篇文章主要介紹了Nginx配置同一個(gè)域名同時(shí)支持http與https兩種方式訪問(wèn)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • nginx中proxy_pass各種用法詳解

    nginx中proxy_pass各種用法詳解

    nginx中配置location代理轉(zhuǎn)發(fā)規(guī)則的時(shí)候不同寫法對(duì)應(yīng)不同轉(zhuǎn)發(fā)規(guī)則。本文就介紹幾種常見(jiàn)的匹配情況,感興趣的可以了解一下
    2021-11-11
  • nginx上設(shè)置html不緩存的方法實(shí)現(xiàn)

    nginx上設(shè)置html不緩存的方法實(shí)現(xiàn)

    前端項(xiàng)目發(fā)布以后,經(jīng)常會(huì)遇到訪問(wèn)不到最新的版本,這主要是由于我們項(xiàng)目的入口文件index.html被瀏覽器或者代理緩存了,本文主要介紹了nginx上設(shè)置html不緩存,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • nginx服務(wù)器access日志中大量400 bad request錯(cuò)誤的解決方法

    nginx服務(wù)器access日志中大量400 bad request錯(cuò)誤的解決方法

    這篇文章主要介紹了nginx服務(wù)器access日志中大量400 bad request錯(cuò)誤的解決方法,本文結(jié)論是空主機(jī)頭導(dǎo)致的大量400錯(cuò)誤日志,關(guān)閉默認(rèn)主機(jī)的日志記錄就可以解決問(wèn)題,需要的朋友可以參考下
    2015-01-01
  • Nginx中alias指令的實(shí)現(xiàn)

    Nginx中alias指令的實(shí)現(xiàn)

    lias指令用于指定一個(gè)替換位置,該替換位置會(huì)替換掉location塊中指定的URl,下面就來(lái)介紹一下alias指令,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • nginx中root和alias指令的使用

    nginx中root和alias指令的使用

    這篇文章主要介紹了nginx中root和alias指令的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • angular6+springboot實(shí)現(xiàn)前后分離nginx配置

    angular6+springboot實(shí)現(xiàn)前后分離nginx配置

    這篇文章主要介紹了angular6+springboot實(shí)現(xiàn)前后分離nginx配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • docker運(yùn)行Nginx及配置方法

    docker運(yùn)行Nginx及配置方法

    這篇文章主要介紹了docker運(yùn)行Nginx及配置方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 配置nginx訪問(wèn)本地靜態(tài)資源,本地圖片,視頻教程

    配置nginx訪問(wèn)本地靜態(tài)資源,本地圖片,視頻教程

    文章介紹了如何配置Nginx以訪問(wèn)本地靜態(tài)資源、圖片和視頻,首先,進(jìn)入Nginx安裝目錄并打開`nginx.conf`文件,添加一個(gè)新的`server`配置來(lái)指定本地路徑,然后,通過(guò)命令行重啟Nginx服務(wù)以應(yīng)用更改,最后,通過(guò)瀏覽器訪問(wèn)配置的圖片路徑來(lái)驗(yàn)證配置是否成功
    2025-01-01

最新評(píng)論