192.168.56.104
/etc/keepalived/keepalived.conf
global_defs {
router_id nginx-proxy-ha
}
vrrp_script check_nginx {
script "/home/lhb/sh/check_nginx.sh" ###监控脚本
interval 2 ###监控时间
weight 2 ###目前搞不清楚
}
vrrp_instance VI_1{
state MASTER ### 设置为 主
interface eth0 ### 监控网卡
virtual_router_id 51 ### 这个两台服务器必须一样
priority 101 ### 权重值 MASTRE 一定要高于 BAUCKUP
authentication {
auth_type PASS ### 加密
auth_pass eric ### 加密的密码,两台服务器一定要一样,不然会出错
}
track_script {
check_nginx ### 执行监控的服务
}
virtual_ipaddress {
192.168.56.200 ### VIP 地址
}
}
192.168.56.107
/etc/keepalived/keepalived.conf
global_defs {
router_id nginx-proxy-ha
}
vrrp_script check_nginx {
script "/home/lhb/sh/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP ### 设置为 辅机
interface eth0
virtual_router_id 51 ### 与 MASTRE 设置 值一样
priority 100 ### 比 MASTRE权重值 低
authentication {
auth_type PASS
auth_pass eric ### 密码 与 MASTRE 一样
}
track_script {
check_nginx
}
virtual_ipaddress {
192.168.56.200
}
}
/home/lhb/sh/check_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx进程 把值赋给变量A
if [ $A -eq 0 ];then ## 如果没有进程值得为 零
/usr/local/openresty/nginx/sbin/nginx
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived ## 则结束 keepalived 进程
fi
fi
192.168.56.104、192.168.56.107上nginx配置:
/usr/local/openresty/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 1024k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css application/xml;
#gzip_vary on;
proxy_hide_header Vary;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
upstream backendserver {
#ip_hash;
server 192.168.56.105:80;
server 192.168.56.106:80;
}
server {
listen 80;
server_name localhost;
location / {
index index.html index.htm;
proxy_pass http://backendserver;
proxy_set_header Host $host;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_504;
proxy_set_header X-Forwarded-For $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
转载于:https://blog.51cto.com/birdinroom/1402049