Nginx作为一款常用的Web服务器和反向代理服务器,设置其在Linux系统中开机自启动可以避免服务器宕机重启后手工启动应用。接下来,就为大家详细介绍在Linux系统中如何设置Nginx开机自启动。

一、创建自定义的Systemd单元文件

首先,需要进入/lib/systemd/system/目录,在终端中执行以下命令:

cd /lib/systemd/system/ 

这个目录是存放Systemd服务单元文件的地方,我们后续创建的Nginx服务单元文件也将放在这里。

二、编写启动服务

接着,使用文本编辑器vim来创建并编辑Nginx的服务单元文件nginx.service,命令如下:

vim /etc/systemd/system/nginx.service 

在打开的文件中,输入以下内容:

[Unit] Description=Nginx HTTP and reverse proxy server After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target 

这里解释一下这些配置的含义:

  • [Unit]部分:
    • Description是对这个服务的描述,方便我们了解其用途,这里描述为“Nginx HTTP and reverse proxy server”,即Nginx HTTP和反向代理服务器。
    • After=network.target表示Nginx服务要在网络服务启动之后再启动,确保网络环境准备好后Nginx才能正常工作。
  • [Service]部分:
    • Type=forking说明Nginx服务是通过fork方式启动的,这是常见的启动类型。
    • ExecStart指定了启动Nginx服务的命令,这里是/usr/local/nginx/sbin/nginx ,不过要注意,你需要根据自己实际的Nginx安装路径来配置。
    • ExecReload用于重新加载Nginx配置的命令,/usr/local/nginx/sbin/nginx -s reload可以让Nginx在不重启服务的情况下重新加载配置文件。
    • ExecStop是停止Nginx服务的命令,/usr/local/nginx/sbin/nginx -s stop用于停止Nginx运行。
    • PrivateTmp=true表示为该服务创建一个独立的临时文件系统空间,增强安全性和独立性。
  • [Install]部分:WantedBy=multi-user.target表示当系统进入多用户模式时,会自动启动Nginx服务。

三、重新加载Systemd管理器配置

完成服务单元文件的编写后,需要重新加载Systemd管理器的配置,让它识别新创建的Nginx服务单元文件。在终端执行以下命令:

sudo systemctl daemon-reload 

sudo表示以管理员权限运行,systemctl daemon-reload命令会通知Systemd重新加载配置文件,这样新的配置就能生效了。

四、启用并启动Nginx服务

接下来,启用Nginx服务并让它立即启动。分别执行以下两条命令:

sudo systemctl enable nginx 

这条命令用于设置Nginx服务为开机自启动,enable选项会在系统启动时自动启动该服务。

sudo systemctl start nginx 

start选项用于立即启动Nginx服务,执行完这条命令后,Nginx就开始运行了。

五、验证服务状态

为了确认Nginx服务是否已经成功设置为开机自启动并且正常运行,可以使用以下命令查看服务状态:

systemctl status nginx 

执行上述命令后,会显示Nginx服务的详细状态信息,类似下面这样:

[root@qb system]# systemctl status nginx nginx.service - Nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Main PID: 130365(nginx) Process: 130355 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS) Active: active (running) since Mon 2025-04-14 15:15:27 CST; 4s ago Memory: 71.9M CGroup: /system.slice/nginx.service Tasks: 9 (limit: 100936) -130365 nginx: master process /usr/lcal/nginx/sbin/nginx -130368 nginx: worker process -130369 nginx: worker process -130370 nginx: worker process -130371 nginx: worker process -130372 nginx: worker process -130373 nginx: worker process -130374 nginx: worker process 130375 nginx: worker process 

从这些信息中,我们可以看到Nginx服务的加载状态(Loaded)、主进程ID(Main PID)、是否正在运行(Active)等关键信息。如果显示“active (running)”,就说明Nginx服务已经成功启动并且正在运行,同时也意味着开机自启动设置成功了。

通过以上步骤,我们就可以在Linux系统中成功设置Nginx开机自启动,这么简单,聪明的你应该已经学会了吧。