
Nginx 正確發(fā)音為 “engine x” 是一個(gè)免費(fèi)的,開源的,高性能的 HTTP 和反向代理服務(wù)器,很多網(wǎng)站都采用 Nginx 作為 Web server 或者反向代理服務(wù)。 Nginx 可以用作獨(dú)立的Web服務(wù)器,也可以用作 Apache 和其他 Web 服務(wù)器的反向代理。
如果您是開發(fā)人員或系統(tǒng)管理員,或者運(yùn)維,那么您可能會(huì)定期檢查,啟停,重載 Nginx 服務(wù)。
在本指南中,我們將重點(diǎn)介紹使用 systemctl 管理 Nginx 常用命令,包括啟動(dòng),停止和重新啟動(dòng) Nginx。
開始之前
所有命令必須以 sudo 或 root 用戶身份執(zhí)行,這些命令應(yīng)該適用于任何現(xiàn)代 Linux 發(fā)行版,如 Ubuntu 18.04 和 CentOS 7 以及 Debian 9/10。
啟動(dòng) Nginx 服務(wù)
啟動(dòng)Nginx非常簡單。 只需運(yùn)行以下命令:
sudo systemctl start nginx
成功執(zhí)行后,該命令不會(huì)產(chǎn)生任何輸出。
如果您使用的發(fā)行版上沒有安裝 systemd ,可以通過以下命令啟動(dòng):
sudo service start nginx
除了手動(dòng)啟動(dòng) Nginx 服務(wù),建議將其設(shè)置為在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng),通過以下命令進(jìn)行設(shè)置:
sudo systemctl enable nginx
停止 Nginx 服務(wù)
即使存在打開的連接,停止Nginx也會(huì)快速關(guān)閉所有 Nginx 工作進(jìn)程。
要停止Nginx,請(qǐng)運(yùn)行以下命令之一:
sudo systemctl stop nginx
如果您使用的發(fā)行版上沒有安裝 systemd ,可以通過以下命令停止:
sudo service stop nginx
重啟 Nginx 服務(wù)
重啟是一種先停止然后再啟動(dòng) Nginx 服務(wù)器的快速方法。
使用以下命令執(zhí)行 Nginx 重新啟動(dòng):
sudo systemctl restart nginx
如果您使用的發(fā)行版上沒有安裝 systemd ,可以通過以下命令重啟:
sudo service restart nginx
這些是您可能最常使用的命令。
重載 Nginx 配置文件
當(dāng)您更改其 Nginx 配置時(shí),您都需要重新加載或重新啟動(dòng) Nginx。
重新加載選項(xiàng)將加載新配置,使用新配置啟動(dòng)新的工作進(jìn)程并正常關(guān)閉舊工作進(jìn)程。服務(wù)并不會(huì)中斷。
要重新加載Nginx配置,請(qǐng)使用以下命令:
sudo systemctl reload nginx
如果您使用的發(fā)行版上沒有安裝 systemd ,可以通過以下命令重載:
sudo service reload nginx
測(cè)試 Nginx 配置
每當(dāng)您更改 Nginx 服務(wù)器的配置文件時(shí),最好在重新啟動(dòng)或重新加載服務(wù)之前測(cè)試配置。
使用以下命令測(cè)試 Nginx 配置是否存在任何語法或系統(tǒng)錯(cuò)誤:
sudo nginx -t
輸出類似如下:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果有任何錯(cuò)誤,命令將打印詳細(xì)消息。
查看 Nginx 狀態(tài)
要檢查 Nginx 服務(wù)的狀態(tài),請(qǐng)使用以下命令:
sudo systemctl status nginx
輸出結(jié)果類似如下:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-18 10:57:01 PDT; 5min ago
Docs: man:nginx(8)
Process: 4491 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 4502 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 4492 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 4504 (nginx)
Tasks: 3 (limit: 2319)
CGroup: /system.slice/nginx.service
|-4504 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
|-4516 nginx: worker process
`-4517 nginx: worker process
結(jié)果中的Active: active (running)顯示了 Nginx 運(yùn)行狀態(tài)。
檢查 Nginx 版本
有時(shí)您可能需要知道 Nginx 的版本,以便調(diào)試問題或確定某個(gè)功能是否可用。
您可以通過運(yùn)行以下方式檢查您的 Nginx 版本:
sudo nginx -v
和小寫-v不同使用參數(shù)-V選項(xiàng)將輸出 Nginx 版本以及 configure 選項(xiàng),注意這個(gè)是大寫的V。
sudo nginx -V
寫在最后
在本指南中,我們向您展示了一些最重要的 Nginx 命令。 如果您想了解有關(guān) Nginx 命令行的更多信息,請(qǐng)?jiān)L問 Nginx 文檔