Keepalived+Nginx+Tomcat
------------------------------------------------------------------------------
Nginx: dd dd0
Tomcat: dd1 dd2 dd3
#dd dd0 配nginx
vi /usr/local/nginx/conf/nginx.conf
upstream localhost{
server 192.168.10.11:8080 weight=2;
server 192.168.10.12:8080 weight=2;
}
location / {
root html;
index index.html index.htm;
proxy_connect_timeout 3;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_pass http://localhost;
}
#dd dd0 配keepalived
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局配置
global_defs {
notification_email {
[email protected]
[email protected]
}
#通知郵件從哪個地址發出
notification_email_from [email protected]
#通知郵件的smtp地址
smtp_server smtp.exmail.qq.com
#連接smtp服務器的超時時間,單位秒
smtp_connect_timeout 30
#Keepalived的機器標識,一個網絡內保持唯一
router_id nginx-master
}
#執行腳本配置
vrrp_script chk_nginx {
#腳本所在路徑
script "/check_nginx.sh"
#腳本執行間隔時間,秒
interval 2
#優先級
weight 2
}
#keepalived實例配置
vrrp_instance VI_1 {
#指定實例的初始狀態,MASTER或BACKUP兩種狀態,並且需要大寫
state MASTER
#實例綁定的網卡
interface ens33
#虛擬路由標識,是一個數字,整個VRRP內唯一,如果keepalived配置了主備,需要相同
virtual_router_id 51
#優先級,數值愈大,優先級越高
priority 100
#MASTER與BACKUP之間同步檢查的時間間隔,單位為秒
advert_int 1
#通信驗證
authentication {
auth_type PASS
auth_pass 1111
}
#追蹤外圍腳本
track_script {
#這裏配置vrrp_script的名稱
chk_nginx
}
#虛擬ip配置,可配置多個
virtual_ipaddress {
192.168.55.55
}
}
#配置check_nginx.sh
vi /check_nginx.sh
#!/bin/sh
NGINX=/usr/common/nginx/sbin/nginx
PORT=80
nmap localhost -p $PORT | grep "$PORT/tcp open"
#echo $?
if [ $? -ne 0 ];then
$NGINX -s stop
#這裏再次嘗試啟動NG
$NGINX
sleep 5
nmap localhost -p $PORT | grep "$PORT/tcp open"
[ $? -ne 0 ] && cd /usr/common/keepalived/sbin && pkill keepalived
echo "stoped"
fi
#dd1 dd2 dd3 配置Tomcat
mkdir /web
vi /web/index.jsp
<html>
<head>
<title>192.168.55.138</title>
</head>
<body>
<% out.println("<h1>welcome to dd</h1>");%>
</body>
</html>
vi /usr/local/tomcat/conf/server.xml
<Context docBase="/web/" path="" reloadable="false">
</Context>
/usr/local/tomcat/bin/startup.sh
/usr/local/tomcat/bin/shutdown.sh
#客戶端連接 192.168.55.55 測試
Keepalived+Nginx+Tomcat