Chinaunix首页 | 论坛 | 博客
  • 博客访问: 317764
  • 博文数量: 122
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1340
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-03 20:40
个人简介

智者,既能奋发不休,又能尽人事,顺天命

文章分类

全部博文(122)

文章存档

2014年(39)

2013年(46)

2012年(12)

2011年(3)

2010年(20)

2009年(2)

我的朋友

分类: LINUX

2014-03-01 16:27:04

两台服务器,安装keepalived和apache,即实现高可用,又实现负载均衡。
为了防止检测httpd服务时出现回环,用iptables对正常客户请求数据包打上标记,忽略另一台服务器检测包。

  1. iptables -t mangle -A PREROUTING -d 192.168.2.100 -p tcp --dport 80 -m mac ! --mac-source 00:0C:29:5A:5A:36 -j MARK --set-mark 1
mac地址是另一台服务器的网卡mac。
keepalived配置如下

  1. ! Configuration File for keepalived

  2. global_defs {
  3.    router_id S208
  4. }

  5. vrrp_instance NW3007 {
  6.     state MASTER
  7.     interface eth0
  8.     virtual_router_id 51
  9.     priority 200
  10.     advert_int 5
  11.     track_interface {
  12.     eth0
  13.     }
  14.     authentication {
  15.         auth_type PASS
  16.         auth_pass 1111
  17.     }
  18.     virtual_ipaddress {
  19.         192.168.2.100
  20.     }
  21. }

  22. virtual_server fwmark 1 {
  23.     delay_loop 5
  24.     lb_algo rr
  25.     lb_kind DR
  26.     protocol TCP
  27.   
  28.     real_server 192.168.2.131 80 {
  29.         HTTP_GET {
  30.             url {
  31.                 path /
  32. #digest的值用"genhash -s 192.168.2.132 -p 80 -u /"获得
  33.                 digest 3be873cedd792b389c2b2495aa2b9b31
  34.                 status_code 200
  35.              }
  36.             connect_port 80
  37.             connect_timeout 2
  38.             nb_get_retry 2
  39.             delay_before_retry 2
  40.         }
  41. # TCP_CHECK {
  42. #        connect_port 80
  43. # connect_timeout 2
  44. # delay_before_retry 2
  45. # }
  46.     }
  47.     real_server 192.168.2.132 80 {
  48.        #weight 1
  49.         HTTP_GET {
  50.             url {
  51.                 path /
  52. #digest的值用"genhash -s 192.168.2.131 -p 80 -u /"获得
  53.                 digest e051e54a58c467f7e3e23e648bf7ab83
  54.                 status_code 200
  55.              }
  56.             connect_port 80
  57.             connect_timeout 2
  58.             nb_get_retry 2
  59.             delay_before_retry 2
  60.         }
  61. # TCP_CHECK {
  62. #        connect_port 80
  63. # connect_timeout 2
  64. # }
  65.     }
  66. }
创建文件/etc/sysconfig/network-scripts/ifcfg-lo:0,内容如下

  1. DEVICE=lo:0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.2.100
  5. NETMASK=255.255.255.255
在sysctl.conf中添加

  1. net.ipv4.conf.eth0.arp_ignore = 1
  2. net.ipv4.conf.eth0.arp_announce = 2

另一台服务器基本一致,priority值改一下,iptables的mac改一下。

阅读(4916) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~