宝塔的nginx保活(守护)自用

2024-04-11 19:36

本文主要是介绍宝塔的nginx保活(守护)自用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自己用的服务器盒子,刷的海思,宝塔可能有点小问题,因为是朋友给的,剩下的问题就自己解决吧。

整体运行还算稳定,因为我只跑跑nginx/php/docker(mysql跑不了),性能勉强够用,问题是每次重启的时候,宝塔可以访问,但是nginx开的端口无法访问,php和docker正常,所以问题的关键在nginx上。

问题:

登上宝塔发现,nginx显示状态正常,实际开的端口都不能访问,手动重启nginx,端口可以访问,手动停止nginx,nginx显示状态正常,端口不能访问。

解决:

问题定位在nginx上,因为是ubuntu的系统,32位arm,兼容问题我没法解决,只能尝试用计划任务判断端口状态后,重启nginx了

我自己拼凑的使用如下

#!/bin/bash# 定义 URL 和超时时间
url="http://127.0.0.1:80"
timeout=5# 检测 URL 是否返回 500 错误
status=$(curl -o /dev/null -s -w %{http_code} --connect-timeout $timeout $url)
if [ $status -eq 000 ]; then/etc/init.d/nginx restart
fi

简单解释下:

我在ssh下

curl -o /dev/null -s -w "%{http_code}\n" http://127.0.0.1:80

在nginx停止时,返回000

参考资料我也贴下,也许其它状态下用得上

https://www.cnblogs.com/shenjingwa/p/17381175.html

脚本只支持检测一条url状态码,将url中的网址更改为你需要检测的网址。

#!/bin/bash# 定义 URL 和超时时间
url="http://example.com"
timeout=5# 检测 URL 是否返回 500 错误
status=$(curl -o /dev/null -s -w %{http_code} --connect-timeout $timeout $url)
if [ $status -eq 500 ]; thennginx -t && systemctl reload nginx.service
fi

并在宝塔面板中设置计划任务,选择Shell脚本,执行时间为检测时间,我这里设置的是1分钟检测一次

第二种方法,使用方法同上,当遇到Nginx停止时会自动重启

pgrep -x nginx &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/nginx restart
fi

以上两种方法中的restart可更改为start

restart为重启命令

start为启动命令

BT宝塔常见MySQL/Nginx进程守护方法故障重启(运维技巧) - 八艾云 

BT宝塔常见MySQL/Nginx进程守护方法故障重启(运维技巧)

发布时间:2023/4/1 14:49:49

宝塔发展了一段时间了,目前看起来越来越有模样了,的确减少了不少的维护和配置的工作量。最近发下演示站 Nginx 总是无故宕机,于是收集了下方 BT 宝塔面板的一些守护代码,放到宝塔计划任务里,一遍故障重启。

添加 MySQL 进程守护脚本方法

  1. pgrep -x mysqld &> /dev/null
  2. if [ $? -ne 0 ];then
  3. bash /www/server/panel/script/rememory.sh
  4. /etc/init.d/mysqld start
  5. fi

添加 redis 进程守护脚本方法

  1. pgrep -x redis &> /dev/null
  2. if [ $? -ne 0 ];then
  3. /etc/init.d/redis start
  4. fi

添加 nginx 进程守护脚本方法

  1. pgrep -x nginx &> /dev/null
  2. if [ $? -ne 0 ];then
  3. /etc/init.d/nginx start
  4. fi

添加 php-fpm 进程守护脚本方法

  1. pgrep -x php-fpm &> /dev/null
  2. if [ $? -ne 0 ];then
  3. /etc/init.d/php-fpm-{52|53|54|55|56|70|71|73} restart
  4. fi

添加 php-fpm 进程守护脚本方法

  1. pgrep -x php-fpm &> /dev/null
  2. if [ $? -ne 0 ];then
  3. /etc/init.d/php-fpm-{52|53|54|55|56|70|71|73} restart
  4. fi

 

 经测试,pgrep -x nginx &> /dev/null获得的状态,在我的盒子里不靠谱,最终还是判断端口状态靠谱

个人猜想:

如果要需要重启php mysql nginx才正常,可以写一个php访问mysql,功能正常返回一个值,上面的脚本判断这个值来执行重启或通知。

这篇关于宝塔的nginx保活(守护)自用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/894995

相关文章

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配