本文共 2848 字,大约阅读时间需要 9 分钟。
配置keepalived
#修改配置vim /etc/keepalived/keepalived.conf#配置文件 ! Configuration File for keepalived global_defs { #从服务器最改一下这个 router_id node1 #表示运行keepalived服务器的一个标识。发邮件时显示在邮件主题的信息 } #监控服务.NGINX mysql等 vrrp_script chk_nginx { script "/usr/local/keepalived/check_nginx.sh" #每2s检查一次 interval 2 #每次检查-20 weight -20 } vrrp_instance VI_1 { ##主从设置 MASTER/BACKUP state MASTER #网卡名称 interface eth0 #同一个集群下这个 router_id是一样的 virtual_router_id 51 #本机的ip,需要修改 mcast_src_ip 192.168.100.10 #优先级,从节点 配置,需要小于主节点 priority 100 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 advert_int 1 #认证的密码 authentication { auth_type PASS #设定授权密码,密码相同的为一个集群 auth_pass yellowcong } #触发的脚本 track_script { chk_nginx #检测脚本,上面配置的 } #虚拟ip地址 virtual_ipaddress { 192.168.0.100 192.168.0.101 } }
下面是脚本内容,用来进行nginx是否存活的监测
#创建并赋予权限touch check_nginx.sh && chmod a+x check_nginx.sh#编辑文件vim check_nginx.sh#################下面是内容#####################!/bin/bashCOUNT=$(ps -C nginx --no-header |wc -l)echo $COUNT#判断Nginx 是否都挂掉了if [ $COUNT -eq 0 ]then #如果挂掉了,就启动nginx /usr/local/nginx/sbin/nginx echo "重启nginx" #等5秒钟后,再次查看是否 启动成功 sleep 3 #如果nginx没有启动起来,就直接干掉keepalived COUNT=$(ps -C nginx --no-header |wc -l) if [ $COUNT -eq 0 ] then echo "干掉keepalived" #如果killall命令不能使用,就需要安装psmisc工具了 #yum install -y psmisc killall keepalived fifi
Nginx 配置
vim /usr/local/nginx/conf/nginx.conf#配置完成一个后,直接将另一个拷贝就可以了#################配置的内容###############
#user nobody;#配置的线程数目和cpu处理器的核心数目一致worker_processes 2;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #负载均衡 upstream webapp{ server 192.168.100.11:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.11:8081 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localhost; #地址匹配 location / { #root html; #index index.html index.htm; proxy_set_header X-real-ip $remote_addr; proxy_pass http://webapp; } #错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }}
转载于:https://blog.51cto.com/12843522/2072114