nginx 引入keepalived實現高可用

2021-10-14 15:33:34 字數 3587 閱讀 3317

編號

ip系統

服務職能

1192.168.136.128

centos 7.6 x64

nginx、keepalived (yum安裝)

主機(master)

2192.168.136.129

centos 7.6 x64

nginx、keepalived (yum安裝)

備機(backup)

#!/bin/bash

a=`ps -c nginx --no-header |wc -l`

if [ $a -eq 0 ];then

/usr/sbin/nginx #重啟nginx

if [ `ps -c nginx --no-header |wc -l` -eq 0 ];then #nginx重啟失敗

exit 1

else

exit 0

fielse

exit 0

fi

1、  安裝sendmail或postfix (郵件傳送**mta),現在使用sendmail軟體。

(標註:如果直接使用外部郵箱【qq企業郵和網易企業郵等】傳送郵件可以不需要配置sendmail或postfix,直接把這兩個軟體關掉,直接跳到第3步:配置mail即可實現)

[root@ssticentos65 ~]# /etc/init.d/sendmail start #啟動sendmail服務,如果沒有sendmail執行檔案 直接service/systemctl 啟動即可,下面直接略過

[root@ssticentos65 ~]# /etc/init.d/sendmail status #檢視sendmail啟動情況

sendmail dead but subsys locked #sendmail程序鎖住,原因是postfix服務啟動導致sendmail服務程序鎖住,需要關閉postfix服務。

sm-client (pid 1759) is running...

[root@ssticentos65 ~]# /etc/init.d/postfix stop #暫停postfix服務提示失敗,原因是postfix程序正在使用,需要使用kill命令殺掉postfix程序

shutting down postfix: [failed]

[root@ssticentos65 ~]# /etc/init.d/postfix status #檢視postfix服務可以檢視到程序號

master (pid 1647) is running...

[root@ssticentos65 ~]# kill -9 1647 #殺掉postfix服務程序號

[root@ssticentos65 ~]# /etc/init.d/postfix status #檢視postfix狀態

master dead but pid file exists

[root@ssticentos65 ~]# chkconfig postfix off #設定postfix開機不啟動

[root@ssticentos65 ~]# /etc/init.d/sendmail stop #暫停sendmail服務

shutting down sm-client: [ ok ]

shutting down sendmail: [failed]

[root@ssticentos65 ~]# /etc/init.d/sendmail start #啟動sendmail服務

starting sendmail: [ ok ]

starting sm-client: [ ok ]

2、安裝郵件傳送工具mailx 。(郵件使用者**mua)

3、  配置mail

[root@ssticentos65 ~]# vim /etc/mail.rc

set [email protected] ##設定發件人的郵箱位址

set smtp=smtp.exmail.qq.com ##設定發件人的smtp位址

set smtp-auth-user="[email protected]" smtp-auth-password="******x" ##設定發件的賬號和密碼(qq郵箱有可能會需要授權碼,密碼有時候不行)

set smtp-auth=login ##登入,預設即可

#!/bin/bash   //別把這行省掉,初用者注意,要不無法執行,log會顯示 error exec-ing command ...

#contact='root@localhost(要傳送的郵箱)'

notify()

case $1 in

master)

notify master

;;backup)

notify backup

;;fault)

notify fault

;;*)

echo "usage: $(basename $0) "

exit 1

;;esac

同樣設定許可權:chmod +x /etc/keepalived/mail.sh 

結束後試著向乙個郵箱傳送測試郵件:echo " testing " | mail -s "test" 152***[email protected]

主機:

global_defs 

vrrp_script chk_nginx

vrrp_instance vi_1

authentication

virtual_ipaddress

}

備機: 

#! configuration file for keepalived

global_defs

vrrp_script chk_nginx

vrrp_instance vi_1

track_script

virtual_ipaddress

notify_master "/etc/keepalived/mail.sh master"

notify_fault "/etc/keepalived/mail.sh fault"

notify_backup "/etc/keepalived/mail.sh backup"

}

keep alive不生效 keepalive詳解

一 簡介 二 vrrp協議 虛擬路由冗餘協議 vrrp是一種容錯協議,它通過把幾台路由裝置聯合組成一台虛擬的路由裝置,並通過一定的機制來保證當主機的下一跳裝置出現故障時,可以及時將業務切換到其它裝置,從而保持通訊的連續性和可靠性。vrrp將區域網內的一組路由器劃分在一起,稱為乙個備份組。備份組由乙個...

Nginx模組引入C 方法

大方法 模組使用c 編譯。nginx伺服器也需要使用c 編繹。1.在模組中,extern c 引入 c 模組。2.在objs makefile中,修改,cpp g link cpp 其中,對於該模組,使用 cpp 進行編繹。3.如果覺得麻煩,需要每次configure之後都要再修改的話,可以直接修改...

HAProxy1 4 6後端Keepalive配置

keepalive 就是通常所稱的長連線,keepalive帶來的好處是可以減少tcp連線的開銷,這對於短response body的請求效果更加明顯。haproxy後端keepalive指的是在haproxy服務完一次與後端的互動 後,不關閉haproxy和後端 的連線,而是維護這個連線以備後續的...