開發(fā)人員和管理員應該掌握的25個Nginx命令(上)
Nginx是Linux和BSD用戶中最受歡迎的web服務器之一,因為它具有豐富的功能指令集和優(yōu)越的靈活性。如果您是一名Web開發(fā)人員,那么您可能正在使用Nginx或Apache服務器。因此,深入了解Nginx如何從命令行工作是很重要的。
幸運的是,您可以通過掌握一些Nginx命令來提高DevOps技能。我們的編輯為您選擇了這些經(jīng)常使用的命令,并為啟動Linux管理員提供了全面的討論。那就請你閱讀本文以了解關于這些命令的更多信息。
適用于Linux管理員的Nginx命令
與許多Web服務器不同,Nginx僅使用配置文件處理服務器配置。因此,您可以利用的命令行參數(shù)很少。這很有用,因為管理員可以快速找到他們要找的命令。下面是一些廣泛使用的Nginx命令,您現(xiàn)在就可以使用它們。
在Linux中安裝Nginx Web 服務器
Nginx提供了幾種用于不同版本Linux的安裝軟件包??梢允褂密浖芾砥髦苯影惭bNginx,如下所示。
- $ sudo apt install nginx # Ubuntu
- $ sudo dnf install nginx # Fedora
- $ sudo yum install epel-release && yum install nginx # RHEL 或 CentOS
也可以從源代碼編譯Nginx。
1. 啟動Nginx服務器
如下所示,啟動Nginx Web服務器非常容易。只需使用以下命令之一來調(diào)用標準Web服務器。
- sudo service nginx start
發(fā)出此命令時,Nginx正在由System V初始化腳本啟動。如果您是從基于系統(tǒng)的系統(tǒng)(如Ubuntu Linux 16.04LTS及更高版本)運行Nginx,則需要使用以下命令。
- sudo systemctl start nginx
您應該得到一個響應,顯示服務器是否成功啟動。另一個簡單但有效的方法是使用二進制路徑直接調(diào)用Nginx,如下所示。
- sudo /usr/bin/nginx
2. 停止Nginx服務器
您也可以使用上面顯示的類似方法停止正在運行的Nginx服務器。但是,請記住,當停止正在運行的Nginx服務器時,與之關聯(lián)的所有系統(tǒng)進程都會被殺死。即使您有活動的連接,它也會終止。
- sudo service nginx stop
該命令將在使用System V初始化腳本的系統(tǒng)中停止Nginx進程。對于基于systemd的計算機,可以使用以下命令。
- sudo systemctl stop nginx
但是,在繁忙的服務器中,這些命令仍會花費大量時間。下一條命令演示如何以更快的方式停止Nginx服務。
- sudo killall -9 nginx
3. 退出Nginx服務器
退出Nginx服務器類似于停止服務器-唯一的區(qū)別是。Nginx守護程序采用了一種優(yōu)雅的方法來退出,因為它不會中斷任何活動的連接。因此,您的客戶請求將在關閉之前按預期的方式提供。
- sudo service nginx quit
使用此命令從Linux shell退出Nginx服務器。運行基于Systemd的計算機的用戶可以利用下一個命令來完成此工作。
- sudo systemctl quit nginx
您也可以使用以下Nginx命令之一退出正在運行的服務器。
- sudo nginx -s quit
- sudo kill -QUIT $( cat /usr/local/nginx/logs/nginx.pid )
4. 重新啟動Nginx服務器
重新啟動服務器時,Nginx進程只是停止然后重新啟動。您可以使用以下命令之一從命令行重新啟動Nginx守護程序。
- sudo service nginx restart
此命令將使用System V初始化腳本重新啟動Nginx服務器。您可以在新的Ubuntu版本(例如較新的Ubuntu)等基于系統(tǒng)的系統(tǒng)中使用systemctl進行此操作。
- sudo systemctl restart nginx
您也可以用其他方式執(zhí)行此操作,如以下示例所示。
- sudo /etc/init.d/nginx restart
如果從源代碼編譯了Nginx,則可以使用下一個命令。
- sudo /usr/local/nginx/sbin/nginx -s restart
5. 重新加載Nginx服務器
重新加載Nginx服務器與重新啟動服務器略有不同。重新加載服務器時,Nginx將以正常方式關閉。這意味著Nginx守護程序?qū)⑹紫冉K止,然后解析配置文件以進行嘗試的更改,并在不中斷操作的情況下啟動新的工作進程。
- sudo service nginx reload
- sudo systemctl status nginx
第一個命令使用System V初始化腳本,而最后一個命令用于基于systemd的Linux發(fā)行版。您也可以調(diào)用以下腳本來完成此工作。
- sudo /etc/init.d/nginx reload
如果您已從源代碼編譯了Nginx,則應使用下一個命令。
- sudo /usr/local/nginx/sbin/nginx -s reload
下一個命令是正常重啟Nginx服務器的另一種便捷方法。
- sudo nginx -s reload
6. 檢查Nginx狀態(tài)
有時,您可能需要先查看Nginx服務器的當前狀態(tài),然后再對其進行任何操作。使用以下命令之一可以非常快速地完成此操作。切記對您的命令進行sudo或切換到root用戶。
- sudo service nginx status
如先前的一些命令所示,此命令通過初始化System V初始化腳本來起作用。您可以對使用systemd的系統(tǒng)使用next命令。
- systemctl status nginx
執(zhí)行此操作的另一種方法是直接使用Nginx init.d腳本,如以下命令所示。
- sudo /etc/init.d/nginx status
如果Nginx是從源代碼編譯的,則您需要執(zhí)行下一個命令。
- sudo /usr/local/nginx/sbin/nginx -s status
7. 檢查Nginx配置
由于Nginx的自定義功能范圍很廣,因此網(wǎng)絡管理員經(jīng)常需要調(diào)整配置文件以添加/解鎖新功能。但是,您應該始終測試配置文件中是否存在潛在錯誤。否則,惡意用戶可能會利用服務器配置中的錯誤。
- sudo nginx -t
這是一個簡單的命令,可以為您完成這項工作。運行此命令時,基本上是在告訴Nginx檢查配置文件中的語法錯誤,并避免運行服務器。您可以使用以下命令在終端控制臺上轉儲配置測試的結果。
- sudo nginx -T
您也可以使用以下Nginx命令之一來測試Nginx服務器的配置。
- sudo service nginx configtest # System V Init
- sudo systemctl config nginx # systemd-based
8. 送信號給Nginx
管理員可以向Nginx守護程序發(fā)送各種有用的信號。您將需要使用-s標志向Nginx發(fā)送信號,然后發(fā)送實際信號。當我們使用它退出并重新加載Nginx服務器時,我們已經(jīng)看到了運行中的信號。在這里,我們按順序指定它們。
- $ sudo nginx -s stop # 停止正在運行的Nginx服務器
- $ sudo nginx -s quit # 退出Nginx服務器
- $ sudo nginx -s reload # 正常重啟Nginx
- $ sudo nginx -s reopen # 重新打開服務器日志文件
但是,您的Nginx版本至少應為0.7.53或更高。否則,您將無法向Nginx進程發(fā)送信號。