nginx 设置开机自启动
时间 : 2024-02-29 17:57:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

Nginx是一种轻量级的Web服务器软件,被广泛应用于互联网领域。在 Linux 系统中,我们经常需要将 Nginx 设置为开机自启动,以确保服务器重启后自动启动 Nginx 服务。本文将介绍如何在 Linux 系统中设置开机自启动。

一、使用 systemd 设置开机自启动

systemd 是一个用来管理 Linux 系统中的系统和服务的工具。下面是在 systemd 中设置 Nginx 开机自启动的步骤:

1. 创建一个用于启动 Nginx 的服务单元文件。在终端中输入以下命令来创建一个新的服务单元文件:

sudo nano /etc/systemd/system/nginx.service

2. 在打开的文件中,添加以下内容:

[Unit]

Description=nginx - high performance web server

After=network.target

[Service]

ExecStartPre=/usr/sbin/nginx -t -q

ExecStart=/usr/sbin/nginx

ExecReload=/usr/sbin/nginx -s reload

ExecStop=/usr/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

3. 保存并关闭文件。在 Nano 编辑器中,按下 Ctrl+O 然后按下 Enter 保存文件,然后按下 Ctrl+X 退出编辑器。

4. 使系统加载新的服务文件。在终端中输入以下命令:

sudo systemctl daemon-reload

5. 开启 Nginx 开机自启动。在终端中输入以下命令:

sudo systemctl enable nginx

现在,当你的系统重启时,Nginx 将自动启动。

二、使用 SysV init 设置开机自启动

如果你的 Linux 系统使用 SysV init 进行服务管理,可以按照以下步骤设置 Nginx 开机自启动:

1. 创建一个用于启动 Nginx 的初始化脚本。在终端中输入以下命令来创建一个新的初始化脚本:

sudo nano /etc/init.d/nginx

2. 在打开的文件中,添加以下内容:

#!/bin/sh

#

# Nginx init script

#

# chkconfig: - 85 15

# description: Nginx is a high-performance web server software.

# processname: nginx

# config: /etc/nginx/nginx.conf

# pidfile: /var/run/nginx.pid

# Source function library.

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

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

}

restart() {

configtest || return $?

stop

sleep 1

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

return $?

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

status|status_q)

rh_$1

;;

*)

echo $"Usage: $0 {start|stop|reload|restart|status|configtest}"

exit 2

esac

3. 保存并关闭文件。在 Nano 编辑器中,按下 Ctrl+O 然后按下 Enter 保存文件,然后按下 Ctrl+X 退出编辑器。

4. 设置文件权限。在终端中输入以下命令:

sudo chmod +x /etc/init.d/nginx

5. 开启 Nginx 开机自启动。在终端中输入以下命令:

sudo chkconfig nginx on

现在,当你的系统重启时,Nginx 将自动启动。

总结

无论你是使用 systemd 还是 SysV init,设置 Nginx 的开机自启动都是相对简单的。通过设置对应的服务文件或初始化脚本,我们可以确保在系统重启后 Nginx 服务能够自动启动,从而保证服务器的正常运行。希望本文能对你有所帮助。

其他答案

Nginx是一个高性能的开源的Web服务器软件,常用于构建和部署各种类型的网站和应用程序。在使用Nginx作为服务器时,有时需要将其设置为开机自启动,以确保服务器重启后Nginx能够自动启动。本文将介绍在不同操作系统上设置Nginx开机自启动的方法。

Windows操作系统:

在Windows上,设置Nginx开机自启动是相对简单的。以下是详细的步骤:

步骤1:打开Nginx的安装目录。通常,默认的安装路径是在C:\nginx。

步骤2:在Nginx的安装目录中,找到一个名为nginx-service.exe的文件。

步骤3:以管理员身份打开命令提示符窗口。可以右键点击“开始菜单”,选择“命令提示符(管理员)”选项。

步骤4:在命令提示符窗口中,输入cd C:\nginx,并按下回车键,进入Nginx的安装目录。

步骤5:输入以下命令来安装Nginx的Windows服务:nginx-service.exe install

步骤6:启动Nginx服务:nginx-service.exe start

现在,每次重启Windows操作系统后,Nginx将会自动启动。

Linux操作系统:

在Linux操作系统上,设置Nginx开机自启动通常需要使用系统的初始化脚本或者Systemd服务。以下是两种常用的方法:

方法1:使用系统的初始化脚本(适用于使用init或SysV风格启动的系统)

步骤1:打开一个终端或者SSH连接。

步骤2:进入/etc/init.d目录,该目录包含了系统的初始化脚本。

步骤3:创建一个名为nginx的文件,并将以下内容复制到文件中:

```bash

#!/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 web server 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

case "$1" in

start)

echo "Starting $DESC..."

start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \

--exec $DAEMON -- $DAEMON_OPTS || true

echo "Done."

;;

stop)

echo "Stopping $DESC..."

start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \

--exec $DAEMON || true

echo "Done."

;;

restart|force-reload)

echo "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 "Done."

;;

reload)

echo "Reloading $DESC..."

start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \

--exec $DAEMON || true

echo "Done."

;;

*)

N=/etc/init.d/$NAME

echo "Usage: $N {start|stop|restart|force-reload}" >&2

exit 1

;;

esac

exit 0

步骤4:保存文件,并设置可执行权限:chmod +x nginx

步骤5:运行以下命令将Nginx添加到系统的启动项中: update-rc.d nginx defaults

现在,Nginx将在每次操作系统启动时自动启动。

方法2:使用Systemd服务(适用于使用Systemd风格启动的系统)

步骤1:打开一个终端或者SSH连接。

步骤2:创建一个名为nginx.service的文件,并将以下内容复制到文件中:

[Unit]

Description=Nginx HTTP Server

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

步骤3:保存文件,并将文件移动到/etc/systemd/system目录下: mv nginx.service /etc/systemd/system/

步骤4:运行以下命令以重新加载Systemd服务配置:systemctl daemon-reload

步骤5:运行以下命令将Nginx添加到系统的启动项中:systemctl enable nginx

现在,Nginx将在每次操作系统启动时自动启动。

无论使用Windows还是Linux操作系统,设置Nginx开机自启动都是非常简单的。按照上述步骤操作,可以确保在服务器重启后,Nginx能够自动启动,保证网站或应用程序的正常运行。