国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)

這篇具有很好參考價(jià)值的文章主要介紹了Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)
nginx 重新加載配置,項(xiàng)目踩坑,nginx,linux,運(yùn)維,重啟,升級(jí)

大家好,我是洲洲,歡迎關(guān)注,一個(gè)愛聽周杰倫的程序員。關(guān)注公眾號(hào)【程序員洲洲】即可獲得10G學(xué)習(xí)資料、面試筆記、大廠獨(dú)家學(xué)習(xí)體系路線等…還可以加入技術(shù)交流群 歡迎大家在CSDN后臺(tái)私信我!

前言

首先我們介紹一下Nginx是什么,怕有些同學(xué)忘了Nginx的定義了!

Nginx有一個(gè)主進(jìn)程和幾個(gè)工作進(jìn)程,主進(jìn)程的主要作用就是讀取、評(píng)估配置文件和管理工作進(jìn)程,工作進(jìn)程對(duì)請(qǐng)求做實(shí)際處理。工作進(jìn)程的數(shù)量是在配置文件中配置的,一般設(shè)置為cpu的核心數(shù)線程數(shù)。

Nginx可以通過信號(hào)控制,默認(rèn)情況下,主進(jìn)程的進(jìn)程ID記錄在/usr/local/nginx/logs/nginx.pid 文件中。信號(hào)可以通過nginx可執(zhí)行文件發(fā)送給nginx (nginx -s 信號(hào)),也可以通過unix的kill命令發(fā)送給nginx,這種情況下是將信號(hào)直接發(fā)送給指定進(jìn)程ID的進(jìn)程,如:kill QUIT 1628。

一、啟動(dòng)

啟動(dòng)nginx,直接運(yùn)行nginx的可執(zhí)行文件:


[root@localhost ~]# /usr/local/nginx/sbin/nginx

二、停止Nginx

快速關(guān)閉:nginx -s stop 或者kill -TERM 主進(jìn)程號(hào) 或者kill -INT 主進(jìn)程號(hào)


[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -s stop


//方案2
[root@localhost sbin]# ps -ef |grep nginx|grep master
root       9879      1  0 13:15 ?        00:00:00 nginx: master process ./nginx
[root@localhost sbin]# kill -TERM 9879


//方案3
[root@localhost sbin]# kill -INT 9879

優(yōu)雅關(guān)閉(不接受新的連接請(qǐng)求,等待舊的連接請(qǐng)求處理完畢再關(guān)閉):nginx -s quit 或者 kill -QUIT 主進(jìn)程號(hào)


[root@songguoliang sbin]# pwd
/usr/local/nginx/sbin
[root@songguoliang sbin]# ./nginx -s quit

注意:執(zhí)行該命令的用戶應(yīng)該是啟動(dòng)nginx的用戶


[root@localhost sbin]# ps -ef |grep nginx
root       9889      1  0 13:17 ?        00:00:00 nginx: master process ./nginx
nobody     9890   9889  0 13:17 ?        00:00:00 nginx: worker process
root       9893   2008  0 13:18 pts/1    00:00:00 grep nginx
[root@localhost sbin]# kill -QUIT 9889

三、重新加載配置文件

nginx -s reload 或者 kill -HUP 主進(jìn)程號(hào)

為了讓主進(jìn)程重新讀取配置文件,應(yīng)該向主進(jìn)程發(fā)送一個(gè)HUP信號(hào),主進(jìn)程一旦接收到重新加載配置的的信號(hào),它就檢查配置文件語法的有效性,然后試圖應(yīng)用新的配置,即打開新的日志文件和新的socket 監(jiān)聽,如果失敗,它將回滾配置更改并繼續(xù)使用舊的配置,如果成功了,它開啟新的工作進(jìn)程,并給舊的工作進(jìn)程發(fā)消息讓它們優(yōu)雅的關(guān)閉,舊的工作進(jìn)程接收到關(guān)閉信號(hào)后,不再接收新的請(qǐng)求,如果已有請(qǐng)求正在處理,等當(dāng)前請(qǐng)求處理完畢后關(guān)閉,如果沒有請(qǐng)求正在處理,則直接關(guān)閉。


[root@localhost sbin]# ./nginx -s reload

方案2:


[root@localhost sbin]# ps -ef|grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9949   9944  0 13:23 ?        00:00:00 nginx: worker process
root       9960   9917  0 13:28 pts/1    00:00:00 grep nginx
[root@songguoliang sbin]# kill -HUP 9944

四、測(cè)試配置文件

檢查配置文件語法是否正確,然后試圖打開文件涉及的配置:nginx -t


[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

五、查看nginx版本信息


[root@zhouzhou sbin]# ./nginx -v
nginx version: nginx/1.10.1

六、查看nginx版本信息,編譯版本,和配置參數(shù)


[root@songguoliang sbin]# ./nginx -V
nginx version: nginx/1.10.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
configure arguments: --prefix=/usr/local/nginx

七、重啟日志文件

重啟日志文件,備份日志文件時(shí)常用:nginx -s reopen 或者 kill -USR1 主進(jìn)程號(hào)


[root@localhost sbin]# ./nginx -s reopen

[root@localhost sbin]# kill -USR1 2030

由于nginx是通過inode指向日志文件的,inode和文件名無關(guān),所以即使把日志文件重命名,nginx還是將日志文件寫入原文件,只有用上面的命令重新開啟日志文件才能將日志寫入新的日志文件。

八、nginx平滑升級(jí)

如果你需要升級(jí)或者添加、刪除服務(wù)器模塊時(shí),可以通過nginx的平滑升級(jí),在不停止服務(wù)的情況下升級(jí)nginx。

(1)用新的nginx可執(zhí)行程序替換舊的可執(zhí)行程序,即下載新的nginx,重新編譯到舊版本的安裝路徑中(重新編譯之前可以備份舊的可執(zhí)行文件)

(2)給nginx主進(jìn)程號(hào)發(fā)送USR2信號(hào)


[root@localhost sbin]# kill -USR2 9944

執(zhí)行命令前的進(jìn)程:


[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10010   9917  0 13:42 pts/1    00:00:00 grep nginx

執(zhí)行命令后的進(jìn)程:


[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10015   9917  0 13:43 pts/1    00:00:00 grep nginx

給nginx發(fā)送USR2信號(hào)后,nginx會(huì)將logs/nginx.pid文件重命名為nginx.pid.oldbin,然后用新的可執(zhí)行文件啟動(dòng)一個(gè)新的nginx主進(jìn)程和對(duì)應(yīng)的工作進(jìn)程,并新建一個(gè)新的nginx.pid保存新的主進(jìn)程號(hào)


[root@songguoliang logs]# pwd
/usr/local/nginx/logs
[root@songguoliang logs]# ll
總用量 16
-rw-r--r--. 1 nobody root 596 108 13:02 access.log
-rw-r--r--. 1 nobody root 881 108 13:43 error.log
-rw-r--r--. 1 root   root   6 108 13:43 nginx.pid
-rw-r--r--. 1 root   root   5 108 13:22 nginx.pid.oldbin
[root@songguoliang logs]# cat nginx.pid
10012
[root@songguoliang logs]# cat nginx.pid.oldbin 
9944

這時(shí),nginx的新的實(shí)例和舊的實(shí)例同時(shí)工作,共同處理請(qǐng)求連接。接下來要關(guān)閉舊的實(shí)例進(jìn)程。

先給舊的主進(jìn)程發(fā)送WINCH信號(hào),kill -WINCH 舊的主進(jìn)程號(hào)

[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
nobody     9965   9944  0 13:29 ?        00:00:00 nginx: worker process
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10092   9917  0 14:05 pts/1    00:00:00 grep nginx
[root@localhost sbin]# kill -WINCH 9944
[root@localhost sbin]# 
[root@localhost sbin]# 
[root@localhost sbin]# 
[root@localhost sbin]# ps -ef |grep nginx
root       9944      1  0 13:22 ?        00:00:00 nginx: master process ./nginx
root      10012   9944  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10094   9917  0 14:06 pts/1    00:00:00 grep nginx

舊的主進(jìn)程號(hào)收到WINCH信號(hào)后,將舊進(jìn)程號(hào)管理的舊的工作進(jìn)程優(yōu)雅的關(guān)閉。即一段時(shí)間后舊的工作進(jìn)程全部關(guān)閉,只有新的工作進(jìn)程在處理請(qǐng)求連接。這時(shí),依然可以恢復(fù)到舊的進(jìn)程服務(wù),因?yàn)榕f的進(jìn)程的監(jiān)聽socket還未停止。

給舊的主進(jìn)程發(fā)送QUIT信號(hào),使其關(guān)閉。


[root@localhost sbin]# kill -QUIT 9944
[root@localhost sbin]# ps -ef |grep nginx
root      10012      1  0 13:43 ?        00:00:00 nginx: master process ./nginx
nobody    10013  10012  0 13:43 ?        00:00:00 nginx: worker process
root      10118   9917  0 14:16 pts/1    00:00:00 grep nginx

給舊的主進(jìn)程發(fā)送QUIT信號(hào)后,舊的主進(jìn)程退出,并移除logs/nginx.pid.oldbin文件,nginx的升級(jí)完成。

總結(jié)

Hello,各位看官老爺們好,洲洲已經(jīng)建立了CSDN技術(shù)交流群,如果你很感興趣,可以私信我加入我的社群。

??社群中不定時(shí)會(huì)有很多活動(dòng),例如每周都會(huì)包郵免費(fèi)送一些技術(shù)書籍及精美禮品、學(xué)習(xí)資料分享、大廠面經(jīng)分享、技術(shù)討論、行業(yè)大佬創(chuàng)業(yè)雜談等等。

??社群方向很多,相關(guān)領(lǐng)域有Web全棧(前后端)、人工智能、機(jī)器學(xué)習(xí)、自媒體變現(xiàn)、前沿科技文章分享、論文精讀等等。

??不管你是多新手的小白,都?xì)g迎你加入社群中討論、聊天、分享,加速助力你成為下一個(gè)技術(shù)大佬!也隨時(shí)歡迎您跟我溝通,一起交流,一起成長(zhǎng)。變現(xiàn)、進(jìn)步、技術(shù)、資料、項(xiàng)目、你想要的這里都會(huì)有

??網(wǎng)絡(luò)的風(fēng)口只會(huì)越來越大,風(fēng)浪越大,魚越貴!歡迎您加入社群~一個(gè)人可以或許可以走的很快,但一群人將走的更遠(yuǎn)!

??關(guān)注我的公眾號(hào)(與CSDN同ID:程序員洲洲)可以獲得一份Java 10萬字面試寶典及相關(guān)資料!~

??想都是問題,做都是答案!行動(dòng)起來吧!歡迎評(píng)論區(qū)or后臺(tái)與我溝通交流,也歡迎您點(diǎn)擊下方的鏈接直接加入到我的交流社群!~ 跳轉(zhuǎn)鏈接社區(qū)~

nginx 重新加載配置,項(xiàng)目踩坑,nginx,linux,運(yùn)維,重啟,升級(jí)文章來源地址http://www.zghlxwxcb.cn/news/detail-532958.html

到了這里,關(guān)于Nginx啟動(dòng)、重啟、重新加載配置文件和平滑升級(jí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 外部配置文件和Class打包到j(luò)ar 然后重新啟動(dòng)java -jar

    我這邊以demo.jar和application-dev.properties配置文件為例 一.將Test1.class和Test2.class替換到j(luò)ar內(nèi)部 步驟1:解壓原始demo.jar 將兩個(gè)class文件拷貝到j(luò)ar目錄下后cd到文件目錄執(zhí)行: 步驟2:替換或添加class文件 步驟3:重新打包jar 二、優(yōu)先加載外部的配置文件application-dev.properties,啟動(dòng)ja

    2024年01月19日
    瀏覽(28)
  • SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題

    SpringBoot 啟動(dòng)配置文件加載和參數(shù)配置修改問題

    SpringBoot 或者SpringCloud 有配置文件加載和參數(shù)修改的機(jī)制,本文將從兩個(gè)角度闡述參數(shù)修改和配置文件啟動(dòng)覆蓋問題。 以下幾種方式都可以被@Value讀取到 java -jar -Dserver.port=8080 -Xms1024m demo.jar java -jar demo.jar --server.port=8080 從操作系統(tǒng)的環(huán)境變量中讀取 通過項(xiàng)目中配置文件boots

    2023年04月15日
    瀏覽(27)
  • 你的設(shè)備遇到問題,需要重啟;我們只收集某些錯(cuò)誤信息,然后為你重新啟動(dòng)。

    你的設(shè)備遇到問題,需要重啟;我們只收集某些錯(cuò)誤信息,然后為你重新啟動(dòng)。

    VMware安裝centos和打開其他虛擬機(jī)時(shí)電腦藍(lán)屏報(bào)錯(cuò): 你的設(shè)備遇到問題,需要重啟;我們只收集某些錯(cuò)誤信息,然后為你重新啟動(dòng)。 我的解決辦法:開啟Windows的虛擬機(jī)平臺(tái) 打開控制面板,點(diǎn)擊“程序”,點(diǎn)擊“啟用或關(guān)閉windows功能”,勾選“虛擬機(jī)平臺(tái)”

    2024年02月11日
    瀏覽(31)
  • NGINX指定啟動(dòng)的配置文件

    若不指定安裝路徑,nginx默認(rèn)安裝在 /usr/local/nginx路徑下。 若不指定nginx的配置文件,nginx默認(rèn)啟動(dòng)找的是同級(jí)nginx更路徑下的/conf/nginx.conf配置文件 但該配置文件的所在路徑 以及文件名不是絕對(duì)的,可根據(jù)需要放置在不同的路徑。胡根據(jù)業(yè)務(wù)場(chǎng)景修改配置文件名。 以下是一個(gè)

    2024年02月13日
    瀏覽(23)
  • nginx常用命令(啟動(dòng)、關(guān)閉、重啟)

    nginx常用命令(啟動(dòng)、關(guān)閉、重啟)

    1、找nginx的安裝位置 輸入指令 whereis nginx 找到nginx安裝的目錄 2、進(jìn)入nginx安裝的目錄 輸入指令 cd /usr/local/nginx 進(jìn)入到nginx安裝的目錄 3、執(zhí)行需要操作的指令 關(guān)閉 啟動(dòng) 重啟

    2024年02月02日
    瀏覽(24)
  • 命令行啟動(dòng)nginx、停止nginx 、重啟nginx詳細(xì)教程

    命令行啟動(dòng)nginx、停止nginx 、重啟nginx詳細(xì)教程

    1、按住shift鍵, 右鍵空白處, 打開powerShell窗口 如下: 2、輸入啟動(dòng) nginx指令 start nginx 屏幕會(huì)閃一個(gè)彈窗 再打開任務(wù)管理器 查看是否已有服務(wù)? 有任務(wù)說明啟動(dòng)成功了 備注: 也可以雙擊nginx.exe 可以運(yùn)行 但是這種方式容易造成 上次的nginx未關(guān)閉 服務(wù)中會(huì)有多個(gè)nginx服務(wù) 更新

    2024年02月12日
    瀏覽(19)
  • 關(guān)于VIVADO與VScode配置重啟后,配置無效,需重新配置的問題

    關(guān)于VIVADO與VScode配置重啟后,配置無效,需重新配置的問題

    問題:我想將VIVADO與VScode配置關(guān)聯(lián)起來,實(shí)現(xiàn)在VIVADO中點(diǎn)擊“設(shè)計(jì)文件”可以直接打開VScode進(jìn)行代碼編寫的效果。問題在于,每次在VIVADO中配置完之后,再重啟VIVADO,之前的配置都恢復(fù)了默認(rèn)值,又得我重新配置,比較麻煩。經(jīng)過數(shù)次研究,終于找到了解決辦法,可以一勞永

    2024年02月09日
    瀏覽(73)
  • Nginx基礎(chǔ)常用命令,版本,啟動(dòng),停止,重啟等

    最近部署了nginx-1.18版本,常用命令記錄如下。 1.啟動(dòng)nginx C:javanginx-1.18.0 start nginx 或 C:javanginx-1.18.0 nginx.exe 2.停止nginx C:javanginx-1.18.0 nginx.exe -s stop 或 C:javanginx-1.18.0 nginx.exe -s quit 注:stop是快速停止nginx,可能并不保存相關(guān)信息;quit是完整有序的停止nginx,并保存相關(guān)信息

    2024年02月03日
    瀏覽(26)
  • 啟動(dòng)spring boot項(xiàng)目時(shí)加載配置文件報(bào)錯(cuò)的問題

    啟動(dòng)spring boot項(xiàng)目時(shí)加載配置文件報(bào)錯(cuò)的問題

    最近把電腦重置了一下,然后重新安裝各種開發(fā)軟件,從gitee拉項(xiàng)目到本地運(yùn)行時(shí)居然啟動(dòng)報(bào)錯(cuò)了: Failed to load property source from \\\'file:/D:/program/IdeaProjects/layui/target/classes/application.yml\\\' 這是加載配置文件的時(shí)候失敗了,提示一堆錯(cuò)誤信息,但是沒有任何實(shí)質(zhì)性的幫助。 導(dǎo)致種情況

    2024年02月11日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包