Nginx 在Linux下的啟動 停止和重載入

2022-08-21 08:09:16 字數 2029 閱讀 2103

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

其中-c引數指定配置檔案路徑。

nginx支援以下幾種訊號控制:

- term, int 快速關閉

- quit 從容關閉

- hup 平滑重啟

- usr1 重新開啟日誌檔案,在切割檔案時用處大

- usr2 平滑公升級

- winch 從容關閉工作程序

我們可以通過訊號停止nginx主程序,首先,我們需要通過ps -ef|grep命令獲得master程序的pid,或者通過cat pid檔案獲得主程序號。下面是幾個典型的停止語句:

#從容停止nginx  

kill -quit master程序號

#快速停止nginx

kill -term master程序號

#強制停止nginx

kill -9 master程序號

如果改變了配置檔案,想重啟讓其生效,同樣可以通過傳送系統訊號給nginx主程序,不過,在重啟之前,要確認配置檔案的語法是正確的,否則將不會載入新的配置項。

通過以下語句測試配置檔案語法是否正確:

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

其中-t表示測試,並不真正執行。

然後,通過以下命令重載入nginx配置:

kill -hup master程序號

執行上面命令之後,nginx執行新的工作程序,舊工作程序繼續為已有的連線服務,等所有舊的連線成功後,舊的工作程序才被關閉。

#!/bin/sh  

# chkconfig:

2345

8515

# description:nginx server

nginx_home=/usr/local/nginx

nginx_sbin=$nginx_home/sbin/nginx

nginx_conf=$nginx_home/conf/nginx.conf

nginx_pid=$nginx_home/logs/nginx.pid

nginx_name="

nginx

". /etc/rc.d/init.d/functions

if [ ! -f $nginx_sbin ]

then

echo

"$nginx_name startup: $nginx_sbin not exists!

"exit

fi

start()

stop()

restart()

check()

reload()

relog()

case"$1

"instart)

start

;;

stop)

stop

;;

restart)

restart

;;

check|chk)

check

;;

status)

status -p $nginx_pid

;;

reload)

reload

;;

relog)

relog

;;

*)

echo $

"usage: $0

"exit

1esac

上面是nginx的啟動指令碼,只要把它拷貝至/etc/init.d目錄下,就可以通過service nginx start等目錄操作nginx。

除了上面介紹的直接發訊號給nginx主程序的方法之外,我們還可以通過nginx -s命令:

在Linux裡安裝 啟動nginx

由於nginx依賴於pcre和zlib,所以在安裝nginx時,需要先安裝pcre和zlib 為了方便起見,我把pcre zlib nginx的包放到了同乙個目錄下 1 安裝pcre tar zxvf pcre 8.39.tar.gz cd pcre 8.39 configure make make...

在Linux裡安裝 啟動nginx

由於nginx依賴於pcre和zlib,所以在安裝nginx時,需要先安裝pcre和zlib 為了方便起見,我把pcre zlib nginx的包放到了同乙個目錄下 1 安裝pcre plain view plain copy tar zxvf pcre 8.39.tar.gz cd pcre 8....

在Linux裡安裝 啟動nginx

由於nginx依賴於pcre和zlib,所以在安裝nginx時,需要先安裝pcre和zlib 為了方便起見,我把pcre zlib nginx的包放到了同乙個目錄下 1 安裝pcre plain view plain copy tar zxvf pcre 8.39.tar.gz cd pcre 8....