在Linux系統上,可以通過以下步驟設置開機自啟動Nginx。
1. 打開Nginx的主配置文件。在大多數Linux發行版中,Nginx的主配置文件位于/etc/nginx/nginx.conf路徑下。使用文本編輯器(例如vi或nano)打開該文件。
2. 查找并編輯以下行:
user www-data;worker_processes auto;
將user行更改為具有適當權限的用戶(例如root),以便在啟動時Nginx可以以管理員權限運行。保存并關閉文件。
3. 檢查系統的Init系統。目前,有兩種主要的Init系統:SysV和Systemd。執行以下命令確定所在系統使用的Init系統:
ps --no-headers -o comm 1
如果輸出為init,則系統使用SysV Init系統;如果輸出為systemd,則系統使用Systemd Init系統。
4. 針對不同的Init系統,執行以下操作:
a. 對于SysV Init系統:
創建一個啟動腳本文件/etc/init.d/nginx,并使用文本編輯器打開該文件。
將以下內容復制到文件中:
#! /bin/sh### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
set -e
. /lib/init/vars.sh
. /lib/lsb/init-functions
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS || true
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON || true
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON || true
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON || true
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
保存并關閉文件。
將腳本文件設置為可執行權限:
sudo chmod +x /etc/init.d/nginx
添加Nginx到系統啟動項:
sudo update-rc.d nginx defaults
b. 對于Systemd Init系統:
創建一個Nginx服務文件`/etc/systemd/system/nginx.service`,并使用文本編輯器打開該文件。
將以下內容復制到文件中:
[Unit]Description=Nginx
After=network.target
[Service]
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存并關閉文件。
重新加載systemd配置文件:
sudo systemctl daemon-reload
添加Nginx到系統啟