如何在 Ubuntu/Centos/Docker 上重啟 Nginx

你多久重啟一次 Linux 網絡服務器上的 ngnix 服務? 這篇博文將介紹通過命令行在 Linux 系統上和在 docker 容器中運行的 Nginx 上重啟 Nginx 的各種方法。 我已經介紹了 Systemd 服務器和 SysV init/Upstart 系統。

打開您的終端並使用 root/ 登錄sudo 用戶運行下面顯示的命令。 另請閱讀通過 SSH 連接到正在運行的 Docker 容器的 2 種方法。

重啟 Nginx HTTP 服務器

CentOS 7、Ubuntu 18.04 和 Ubuntu16.04 是 systemd 操作系統。 要重新啟動 nginx 服務,您需要使用 systemctl 命令行工具。

建議重啟nginx服務前檢查語法,

$ sudo nginx -t
$ sudo systemctl restart nginx

如果修改nginx服務單元文件後重啟,需要先重新加載systemd

$ sudo systemctl daemon-reload

然後重啟nginx

$ sudo systemctl restart nginx

如果您想在不重新啟動服務的情況下重新加載配置,即保持當前會話,請使用

sudo systemctl reload nginx

在 Upstart/SysV init 系統上重啟 Nginx

如果您正在運行帶有 upstart 或 SysV init 系統的系統。 例如 Ubuntu 14.04、CentOS 6,你需要使用 service 命令。

$ sudo service nginx restart

您還可以使用絕對路徑來初始化腳本,例如

sudo /etc/init.d/nginx restart

在 docker 容器內重啟 Nginx

對於在 Docker 容器內運行的 nginx,建議重新加載配置而不是重新啟動服務。 另外,建議閱讀如何使用 Docker 而沒有 sudo 在 Ubuntu 上。

docker exec <nginx-container-name-or-id> nginx -s reload

如果必須重啟 nginx 進程,那麼可以考慮使用以下命令重啟容器:

$ docker restart <container name|id>

例子

$ docker restart nginx

在哪裡 nginx 是 nginx 容器的名稱。

重新啟動 nginx 是一個簡單的過程,但您需要小心確保所做的任何更改都具有正確的語法,以避免在重新啟動期間失敗。 用於檢查配置語法的命令是 nginx -t

另請閱讀:

  • 查找如何停止和重新啟動 Apache 在 Linux 系統上
  • 如何在 Ubuntu 中重新啟動網絡
  • 如何使用重啟命令行重啟 Linux 系統