配置Nginx以实现自动重启的方法

 更新时间:2025年02月27日 11:56:16   作者:快点好好学习吧  
要实现Nginx的自动重启,我们通常会借助一个叫做systemd的工具,systemd是Linux系统中的一个服务管理器,它可以帮助我们管理系统的各种服务,包括Nginx

下面,我会给你一个非常完整的实例代码,并详细讲解每一步的操作:

1. 创建一个systemd服务文件

首先,我们需要创建一个服务文件来告诉systemd如何管理Nginx。这个文件通常会被保存在/etc/systemd/system/目录下,并命名为nginx.service

你可以使用下面的命令来创建并编辑这个文件:

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

然后,将下面的内容复制到nginx.service文件中:

[Unit]  
Description=The NGINX HTTP and reverse proxy server  
After=syslog.target network.target remote-fs.target nss-lookup.target  
  
[Service]  
Type=forking  
PIDFile=/run/nginx.pid  
ExecStartPre=/usr/sbin/nginx -t  
ExecStart=/usr/sbin/nginx  
ExecReload=/bin/kill -s HUP $MAINPID  
ExecStop=/bin/kill -s QUIT $MAINPID  
PrivateTmp=true  
  
[Install]  
WantedBy=multi-user.target

这个文件告诉systemd

  • Nginx是一个什么样的服务([Unit]部分)。
  • 如何启动、重新加载和停止Nginx([Service]部分)。
  • 在哪些情况下需要启动Nginx([Install]部分)。

2. 重新加载systemd配置

保存并关闭nginx.service文件后,我们需要通知systemd有一个新的服务配置。这可以通过下面的命令来完成:

sudo systemctl daemon-reload

3. 设置Nginx服务开机自启,并启动服务

接下来,我们希望Nginx在系统启动时自动运行,并且现在就启动它。这可以通过下面的两个命令来完成:

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

4. 检查Nginx状态

最后,我们可以使用下面的命令来检查Nginx的状态:

sudo systemctl status nginx.service

如果一切正常,你应该能看到类似“active (running)”的状态信息。

5.自动重启的魔法

那么,自动重启的魔法在哪里呢?其实,它就在我们刚刚创建的nginx.service文件中。当Nginx因为某些原因意外退出时,systemd会根据这个文件的配置自动尝试重新启动Nginx。

6.shell脚本+计划任务

如果停止后,还可以手工正常启用nginx,那可以考虑把shell脚本添加到宝塔的计划任务里,定时每隔几分钟检测一次,让nginx自动检测停止后立马启用。

ps=`ps -efl|grep nginx|grep -v $0|grep -v grep|wc -l`
if [ $ps -eq 0 ];
then
    echo -e "\n$(date '+%Y-%m-%d %H:%M:%S') start "
    /etc/init.d/nginx start
    echo "$(date '+%Y-%m-%d %H:%M:%S') done"
else
    echo $(date +%F%n%T) "nginx正在运行..."
    exit 0;
fi

宝塔中计划任务

如果没有安装宝塔可以使用crontab来实现即可。

现在,你已经知道如何配置Nginx以实现自动重启了!

相关文章

  • Nginx 配置反向代理使用 Google fonts 字体并开启 HTTP2/SSL 支持

    Nginx 配置反向代理使用 Google fonts 字体并开启 HTTP2/SSL 支持

    nginx作为web服务器一个重要的功能就是反向代理。当然你也可以使用nginx配置正向代理,本是介绍如何配置nginx的反向代理。nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。
    2017-04-04
  • 详解Nginx的核心配置模块中对于请求体的接受流程

    详解Nginx的核心配置模块中对于请求体的接受流程

    这篇文章主要介绍了详解Nginx的核心配置模块中对于请求体的接受流程,包括其丢弃请求的过程,需要的朋友可以参考下
    2015-12-12
  • Nginx IP限制与路径访问控制配置

    Nginx IP限制与路径访问控制配置

    在某些应用场景下,特定路径需要免登录访问,本文主要介绍了Nginx IP限制与路径访问控制配置,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • nginx容器配置文件独立的实现

    nginx容器配置文件独立的实现

    本文主要介绍了nginx容器配置文件独立,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • nginx status配置及参数配置小结

    nginx status配置及参数配置小结

    本文主要介绍了nginx status配置及参数配置,其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,感兴趣的可以了解一下
    2024-04-04
  • nginx搭建文件服务器(保姆级)

    nginx搭建文件服务器(保姆级)

    我们在工作过程中,有许多大的镜像或者安装包等,搭建一个文件服务器,可以高效的储存文件,本文就来介绍一下nginx搭建文件服务器,感兴趣的可以了解一下
    2023-06-06
  • nginx如何配置部署一个域名,多个端口

    nginx如何配置部署一个域名,多个端口

    文章主要讲述了在Windows下使用Nginx部署服务器的过程,包括配置Nginx、部署前端和后端项目、设置反向代理以及部署多个不同端口的项目
    2026-03-03
  • 详解Nginx反向代理和负载均衡部署指南

    详解Nginx反向代理和负载均衡部署指南

    本篇文章主要介绍了Nginx反向代理和负载均衡部署指南 ,具有一定的参考价值,对学习Nginx的同学有一定的帮助,感兴趣的同学可以了解一下。
    2016-12-12
  • 实例详解SpringBoot+nginx实现资源上传功能

    实例详解SpringBoot+nginx实现资源上传功能

    这篇文章主要介绍了SpringBoot+nginx实现资源上传功能,由于小编最近在使用nginx放置静态资源问题,遇到很多干货,特此分享到脚本之家平台,供大家参考,需要的朋友可以参考下
    2019-10-10
  • 查看nginx是否已经启动的几种方法总结

    查看nginx是否已经启动的几种方法总结

    在Ubuntu或其他Linux系统上,有多种方法可以检查Nginx是否已经启动,文中通过代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-11-11

最新评论