我已设置了一个 HAproxy 服务器(前端)和多个 Web 服务器(后端)。是否可以配置 HAproxy,以便在 Web 服务器宕机时执行脚本?
答案1
我认为您问的是您想在后端服务器之一发生故障时发送邮件,对吗?我不认为有办法从 HAProxy 内部触发此操作。一种方法是让脚本定期检查后端的状态,并在后端发生故障时发送电子邮件。您可以使用 HAProxy 套接字接口获取此信息。文档是这里。您可能需要解析show stat
命令的输出。祝您好运!
答案2
我相信下面的脚本会对你有所帮助。请根据需要对其进行修改。你需要在你的 cron 中安排它。当 apache 停机和重新启动时,你可以使用 mailx 发送电子邮件。
RESTART="/etc/init.d/httpd restart"
#incase if you are on Deb based boxes
#RESTART="/etc/init.d/apache2 restart"
PGREP="/usr/bin/pgrep"
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ]
then
# restart apache
$RESTART
fi
答案3
你可以通过 HaProxy 本身来执行此操作,它为你提供了 httpchk 指令,下面是一些示例语法
option httpchk
option httpchk <uri>
option httpchk <method> <uri>
option httpchk <method> <uri> <version>