Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 722|回复: 0

CentOS5.6手动搭建LVS

[复制链接]

238

主题

288

帖子

1925

积分

超级版主

Rank: 8Rank: 8

积分
1925
QQ
发表于 2015-3-18 11:48:39 | 显示全部楼层 |阅读模式
网络
Director(CentOS5.6.x86_64):
        两张网卡
                一个IP是192.168.56.102, 内部网络
                一个IP是172.16.228.132, 外部网络
[root@CentOS56 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:E1:ED:08  
          inet addr:192.168.56.102  Bcast:192.168.56.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:746 errors:0 dropped:0 overruns:0 frame:0
          TX packets:830 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:123515 (120.6 KiB)  TX bytes:85917 (83.9 KiB)


eth1      Link encap:Ethernet  HWaddr 08:00:27:1E:DD:28  
          inet addr:172.16.228.132  Bcast:172.16.228.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:296 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:38353 (37.4 KiB)  TX bytes:8460 (8.2 KiB)


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:3036 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3036 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2381988 (2.2 MiB)  TX bytes:2381988 (2.2 MiB)


[root@CentOS56 ~]# ▊




内部服务器1(CentOS5.8.i386):
[root@CentOS58 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:AC:99:2C  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feac:992c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:605 errors:0 dropped:0 overruns:0 frame:0
          TX packets:453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:71149 (69.4 KiB)  TX bytes:72886 (71.1 KiB)


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)


[root@CentOS58 ~]# ▊




内部服务器2(ScientificLinux6.1.x86_64):
[root@SL6 ~]# ifconfig
eth1      Link encap:Ethernet  HWaddr 08:00:27:B2:60:1B  
          inet addr:192.168.56.103  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feb2:601b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:378 errors:0 dropped:0 overruns:0 frame:0
          TX packets:190 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:49246 (48.0 KiB)  TX bytes:28054 (27.3 KiB)


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


[root@SL6 ~]# ▊




在Director上安装软件
[root@CentOS56 ~]# yum install ipvsadm
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.sin3.sg.voxel.net
* epel: mirrors.ustc.edu.cn
* extras: mirrors.sin3.sg.voxel.net
* updates: mirrors.sin3.sg.voxel.net
[ ... 以下省略 ... ]
Running Transaction
  Installing     : ipvsadm                                                 1/1


Installed:
  ipvsadm.x86_64 0:1.24-13.el5                                                


Complete!
[root@CentOS56 ~]# ▊




配置Director:
开启IP转发, 配合IPTABLES作软路由
[root@CentOS56 ~]# echo "1" >/proc/sys/net/ipv4/ip_forward
[root@CentOS56 ~]# iptables -F
[root@CentOS56 ~]# iptables -X
[root@CentOS56 ~]# iptables -P FORWARD ACCEPT
[root@CentOS56 ~]# iptables -P INPUT ACCEPT
[root@CentOS56 ~]# iptables -P OUTPUT ACCEPT
[root@CentOS56 ~]# iptables -t nat -A POSTROUTING -j MASQUERADE
[root@CentOS56 ~]# ▊




配置重定向
[root@CentOS56 ~]# echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects
[root@CentOS56 ~]# echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects
[root@CentOS56 ~]# echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects
[root@CentOS56 ~]# echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects
[root@CentOS56 ~]# ▊




清除ipvsadm表
[root@CentOS56 ~]# /sbin/ipvsadm -C
[root@CentOS56 ~]# ▊




使用ipvsadm安装LVS服务
[root@CentOS56 ~]# /sbin/ipvsadm -A -t 172.16.228.132:80 -s rr
[root@CentOS56 ~]# ▊




增加第一台内部服务器
[root@CentOS56 ~]# /sbin/ipvsadm -a -t 172.16.228.132:80 -r 192.168.56.103:80 -m -w 1
[root@CentOS56 ~]# ▊




增加第二台内部服务器
[root@CentOS56 ~]# /sbin/ipvsadm -a -t 172.16.228.132:80 -r 192.168.56.101:80 -m -w 1
[root@CentOS56 ~]# ▊




配置内部服务器


把网关指向Director的内部IP
[root@CentOS58 ~]# route add default gw 192.168.56.102
[root@CentOS58 ~]# ▊




[root@SL6 ~]# route add default gw 192.168.56.102
[root@SL6 ~]# ▊




现在的路由表
[root@CentOS56 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.228.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         172.16.228.2    0.0.0.0         UG    0      0        0 eth1
[root@CentOS56 ~]# ▊




[root@Centos58 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.56.102  0.0.0.0         UG    0      0        0 eth0
[root@Centos58 ~]# ▊




[root@SL6 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.56.102  0.0.0.0         UG    0      0        0 eth1
[root@SL6 ~]# ▊




安装httpd的软件
[root@SL6 ~]# yum install httpd -y
Loaded plugins: security
sl                                                      | 3.2 kB     00:00     
sl-security                                             | 1.9 kB     00:00     
Setting up Install Process
[ ... 以下省略 ... ]
Running Transaction
  Installing : apr-1.3.9-3.el6_1.2.x86_64                                  1/6
  Installing : apr-util-1.3.9-3.el6_0.1.x86_64                             2/6
  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                        3/6
  Installing : httpd-tools-2.2.15-15.sl6.1.x86_64                          4/6
  Installing : mailcap-2.1.31-1.1.el6.noarch                               5/6
  Installing : httpd-2.2.15-15.sl6.1.x86_64                                6/6


Installed:
  httpd.x86_64 0:2.2.15-15.sl6.1                                               


Dependency Installed:
  apr.x86_64 0:1.3.9-3.el6_1.2            apr-util.x86_64 0:1.3.9-3.el6_0.1   
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1  httpd-tools.x86_64 0:2.2.15-15.sl6.1
  mailcap.noarch 0:2.1.31-1.1.el6        


Complete!
[root@SL6 ~]# ▊




[root@Centos58 ~]# yum install httpd -y
Loaded plugins: fastestmirror, security
Determining fastest mirrors
* base: ftp.stu.edu.tw
* extras: ftp.stu.edu.tw
* updates: ftp.stu.edu.tw
[ ... 以下省略 ... ]
Running Transaction
  Installing     : apr                                                     1/4
  Installing     : postgresql-libs                                         2/4
  Installing     : apr-util                                                3/4
  Installing     : httpd                                                   4/4


Installed:
  httpd.i386 0:2.2.3-65.el5.centos.3                                          


Dependency Installed:
  apr.i386 0:1.2.7-11.el5_6.5              apr-util.i386 0:1.2.7-11.el5_5.2   
  postgresql-libs.i386 0:8.1.23-6.el5_8   


Complete!
[root@Centos58 ~]# ▊




启动httpd服务
[root@Centos58 ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for Centos58
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@Centos58 ~]# ▊




[root@SL6 ~]# service httpd start
Starting httpd:                                            [  OK  ]
[root@SL6 ~]# ▊




在外部的机器用ip访问Director的外部IP地址, 刷新几次, 会看到不同的页面(还没有配置WEB站点)




查看状态
[root@CentOS56 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.228.132:http rr
  -> 192.168.56.101:http          Masq    1      0          10        
  -> 192.168.56.103:http          Masq    1      0          10        
[root@CentOS56 ~]# ▊




这样做的话, session是不能保存的, 如果需要用到session, 则在Director使用ipvsadm安装LVS服务的时候加上-p参数
这样的话, 对于来自同一个IP的访问总是会被转发到同一个后台服务器
[root@CentOS56 ~]# /sbin/ipvsadm -A -t 172.16.228.132:80 -s rr -p
[root@CentOS56 ~]# ▊




或者把session写入数据库, 不过这会增大DB的压力


还有, 这个并不能检测后台服务器是否掉线, 这个需要keepalived去支持, 见: 《CentOS5.8和ScientificLinux6.1上用keepalived+LVS搭建高NAT模式高可用+均衡负载集群》


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2020-8-6 15:41 , Processed in 0.033376 second(s), 13 queries , Apc On.

快速回复 返回顶部 返回列表