在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到系统启