nginx日常維護常用命令
http://www.jb51.net/article/47750.htm
一、簡明nginx常用命令
1. 啟動 Nginx
poechant@ubuntu:sudo ./sbin/nginx
2. 停止 Nginx
poechant@ubuntu:sudo ./sbin/nginx -s stop
poechant@ubuntu:sudo ./sbin/nginx -s quit
-s都是採用向 Nginx 傳送訊號的方式。
3. Nginx 過載配置
poechant@ubuntu:sudo ./sbin/nginx -s reload
上述是採用向 Nginx 傳送訊號的方式,或者使用:
poechant@ubuntu:service nginx reload
4. 指定配置檔案
poechant@ubuntu:sudo ./sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c表示configuration,指定配置檔案。
5. 檢視 Nginx 版本
有兩種可以檢視 Nginx 的版本資訊的引數。第一種如下:
poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -v nginx: nginx version: nginx/1.0.0
另一種顯示的是詳細的版本資訊:
poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -V nginx: nginx version: nginx/1.0.0 nginx: built by gcc 4.3.3 (Ubuntu 4.3.3-5ubuntu4) nginx: TLS SNI support enabled nginx: configure arguments: --with-http_ssl_module --with-openssl=/home/luming/openssl-1.0.0d/
6. 檢查配置檔案是否正確
poechant@ubuntu:/usr/local/nginx$ ./sbin/nginx -t nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 2012/01/09 16:45:09 [emerg] 23898#0: open() "/usr/local/nginx/logs/nginx.pid" failed (13: Permission denied) nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
如果出現如上的提示資訊,表示沒有訪問錯誤日誌檔案和程式,可以sudo(super user do)一下:
poerchant@ubuntu:/usr/local/nginx$ sudo ./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
如果顯示如上,則表示配置檔案正確。否則,會有相關提示。
7. 顯示幫助資訊
poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -h
或者:
poechant@ubuntu:/user/local/nginx$ ./sbin/nginx -?
以上這些涵蓋了 Nginx 日常維護的所有基本操作,另外還有向 master 程式傳送訊號的相關命令,我們會在下面看到。
二、在Linux下通過master傳送訊號的相關命令
停止操作
停止操作是通過向nginx程式傳送訊號(什麼是訊號請參閱linux文 章)來進行的
步驟1:查詢nginx主程式號
ps -ef | grep nginx
在程式列表裡 面找master程式,它的編號就是主程式號了。
步驟2:傳送訊號
從容停止Nginx:
kill -QUIT 主程式號
快速停止Nginx:
kill -TERM 主程式號
強制停止Nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid檔案存放路徑則該檔案存放的就是Nginx主程式號,如果沒指定則放在nginx的logs目錄下。有了pid文 件,我們就不用先查詢Nginx的主程式號,而直接向Nginx傳送訊號了,命令如下:
kill -訊號型別 `/usr/nginx/logs/nginx.pid` (推薦)
平滑重啟
如果更改了配置就要重啟Nginx,要先關閉Nginx再開啟?不是的,可以向Nginx 傳送訊號,平滑重啟。
平滑重啟命令:
kill -HUP 住進稱號或程式號檔案路徑
或者使用
nginx -s reload(推薦)
或
/usr/nginx/sbin/nginx -s reload
注意,修改了配置檔案後最好先檢查一下修改過的配置檔案是否正 確,以免重啟後Nginx出現錯誤影響伺服器穩定執行。判斷Nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
nginx -t (推薦)
或
/usr/nginx/sbin/nginx -t
平滑升級
如果伺服器正在執行的Nginx要進行升級、新增或刪除模組時,我們需 要停掉伺服器並做相應修改,這樣伺服器就要在一段時間內停止服務,Nginx可以在不停機的情況下進行各種升級動作而不影響伺服器執行。
步驟1:
如 果升級Nginx程式,先用新程式替換舊程式檔案,編譯安裝的話新程式直接編譯到Nginx安裝目錄中。
步 驟2:執行命令
kill -USR2 舊版程式的主程式號或程式檔名
此時舊的Nginx主程式將會把自己的程式檔案改名為.oldbin,然後執行新版 Nginx。新舊Nginx會同市執行,共同處理請求。
這時要逐步停止舊版 Nginx,輸入命令:
kill -WINCH 舊版主程式號
慢慢舊的工作程式就都會隨著任務執行完畢而退出,新版的Nginx的工作程式會逐漸取代舊版 工作程式。
此 時,我們可以決定使用新版還是恢復到舊版。
不過載配置啟動新/舊工作程式
kill -HUP 舊/新版主程式號
從容關閉舊/新程式
kill -QUIT 舊/新主程式號
如果此時報錯,提示還有程式沒有結束就用下面命令先關閉舊/新工作程式,再關閉主程式號:
kill -TERM 舊/新工作程式號
這樣下來,如果要恢復到舊版本,只需要上面的幾個步 驟都是操作新版主程式號,如果要用新版本就上面的幾個步驟都操作舊版主程式號就行了。
上面就是Nginx的一些基本的操作,希望以後Nginx能有更好的方法來處理這些操作, 最好是Nginx的命令而不是向Nginx程式傳送系統訊號。
相關文章
- Oracle RAC 日常維護Oracle
- RAC日常維護命令
- PG日常維護(一)
- Oracle OGG日常維護Oracle
- Gerrit日常維護記錄
- 【MHA】mha日常維護命令
- DBA日常維護SQL整理SQL
- DataGuard 日常維護命令整理
- 針對oracle日常維護Oracle
- Lync日常運維常用命令運維
- rac叢集日常維護命令
- ORACLE DG 日常維護常用SQLOracleSQL
- DBA日常維護SQL指令碼SQL指令碼
- 物理standby database的日常維護Database
- OGG goldengate 日常維護Go
- IBM AIX日常維護命令IBMAI
- 【轉】ORACLE CRS日常維護命令Oracle
- Oracle資料庫日常維護Oracle資料庫
- Oracle DBA 日常維護手冊Oracle
- VMware日常維護工作內容
- Oracle RAC日常基本維護命令Oracle
- mysql維護常用命令MySql
- Redis日常運維-常用命令彙總Redis運維
- 伺服器的日常維護方式伺服器
- EBS DBA日常維護使用的sqlSQL
- Dataguard日常維護及故障解決
- 【轉】Oracle RAC日常基本維護命令Oracle
- 收集oracle日常維護的工作命令Oracle
- solaris 10維護常用命令
- 膝上型電腦日常維護的六個常識,筆記本日常維護小竅門筆記
- linux中oracle的日常維護命令LinuxOracle
- 電腦日常保養維護指南(轉)
- 伺服器維護日常需做哪些工作?伺服器
- 紅帽作業系統日常安全維護作業系統
- MS SQL 日常維護管理常用指令碼(下)SQL指令碼
- 【轉】Oracle資料庫日常維護手冊Oracle資料庫
- 自動儲存管理ASM日常維護(一)ASM
- Oracle資料庫日常維護手冊 (zt)Oracle資料庫