nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > Nginx自动重启

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

作者:快点好好学习吧

要实现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

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以实现自动重启了!

您可能感兴趣的文章:
阅读全文