• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 娅水9213 | 发布时间: 2025-8-16 16:01| 查看数: 10| 评论数: 0|帖子模式

    下面,我会给你一个非常完整的实例代码,并详细讲解每一步的操作:
    1. 创建一个systemd服务文件

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

    你可以使用下面的命令来创建并编辑这个文件:
    1. sudo nano /etc/systemd/system/nginx.service
    复制代码
    然后,将下面的内容复制到
    1. nginx.service
    复制代码
    文件中:
    1. [Unit]  
    2. Description=The NGINX HTTP and reverse proxy server  
    3. After=syslog.target network.target remote-fs.target nss-lookup.target  
    4.   
    5. [Service]  
    6. Type=forking  
    7. PIDFile=/run/nginx.pid  
    8. ExecStartPre=/usr/sbin/nginx -t  
    9. ExecStart=/usr/sbin/nginx  
    10. ExecReload=/bin/kill -s HUP $MAINPID  
    11. ExecStop=/bin/kill -s QUIT $MAINPID  
    12. PrivateTmp=true  
    13.   
    14. [Install]  
    15. WantedBy=multi-user.target
    复制代码
    这个文件告诉
    1. systemd
    复制代码


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

    保存并关闭
    1. nginx.service
    复制代码
    文件后,我们需要通知
    1. systemd
    复制代码
    有一个新的服务配置。这可以通过下面的命令来完成:
    1. sudo systemctl daemon-reload
    复制代码
    3. 设置Nginx服务开机自启,并启动服务

    接下来,我们希望Nginx在系统启动时自动运行,并且现在就启动它。这可以通过下面的两个命令来完成:
    1. sudo systemctl enable nginx.service
    2. sudo systemctl start nginx.service
    复制代码
    4. 检查Nginx状态

    最后,我们可以使用下面的命令来检查Nginx的状态:
    1. sudo systemctl status nginx.service
    复制代码
    如果一切正常,你应该能看到类似“active (running)”的状态信息。
    5.自动重启的魔法

    那么,自动重启的魔法在哪里呢?其实,它就在我们刚刚创建的
    1. nginx.service
    复制代码
    文件中。当Nginx因为某些原因意外退出时,
    1. systemd
    复制代码
    会根据这个文件的配置自动尝试重新启动Nginx。
    6.shell脚本+计划任务

    如果停止后,还可以手工正常启用nginx,那可以考虑把shell脚本添加到宝塔的计划任务里,定时每隔几分钟检测一次,让nginx自动检测停止后立马启用。
    1. ps=`ps -efl|grep nginx|grep -v $0|grep -v grep|wc -l`
    2. if [ $ps -eq 0 ];
    3. then
    4.     echo -e "\n$(date '+%Y-%m-%d %H:%M:%S') start "
    5.     /etc/init.d/nginx start
    6.     echo "$(date '+%Y-%m-%d %H:%M:%S') done"
    7. else
    8.     echo $(date +%F%n%T) "nginx正在运行..."
    9.     exit 0;
    10. fi
    复制代码
    宝塔中计划任务

    如果没有安装宝塔可以使用crontab来实现即可。
    现在,你已经知道如何配置Nginx以实现自动重启了!

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表