1、 LVS实现nat,dr

** NAT模式 **

echo "1" > /proc/sys/net/ipv4/ip_forward
2.永久开启转发,(写入内核)
在 vim /etc/sysctl.conf 下
加入此行   net.ipv4.ip_forward = 1
~lvs]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf		开启forward转发功能
~lvs]# sysctl –p									重载
~lvs]# sysctl –a | grep ip_f							查看状态
~web27]# echo rs27 > index.html
~web17]# echo rs17 > index.html

~lvs]# yum –y install ipvsadm
~lvs]# ipvsadm –A –t 172.20.0.200:80 –s rr
~lvs]# ipvsadm –Ln		查看状态(注意,ipvsadm -Ln顺序不要变更!!与iptables –vnl的顺序是不一样的)
~lvs]# ipvsadm –a –t 172.20.0.200:80 –r 192.168.30.17 -m
~lvs]# ipvsadm –a –t 172.20.0.200:80 –r 192.168.30.27 -m
~client# curl 172.20.0.200
RS1
~client# curl 172.20.0.200
RS2

** DR模式 **

dr模型中,各主机上均需要配置VIP,解决地址冲突的方式有三种:

(1) 在前端网关做静态绑定; (2) 在各RS使用arptables; (3) 在各RS修改内核参数,来限制arp响应和通告的级别;

限制响应级别:arp_ignore
0:默认值,表示可使用本地任意接口上配置的任意地址进行响应;
1: 仅在请求的目标IP配置在本地主机的接收到请求报文接口上时,才给予响应;
限制通告级别:arp_announce
0:默认值,把本机上的所有接口的所有信息向每个接口上的网络进行通告;
1:尽量避免向非直接连接网络进行通告;
2: 必须避免向非本网络通告;
~everypc]# 各主机修改对应的IP
~route]# vim /etc/sysctl.cnf	(路径centos6)
	net.ipv4.ip_forward = 1
~route]# sysctl –p	将配置生效
搭建后,不要急于搭建http,注意层次,搭好网络先测网络,避免都搭建完,但测试不通。
~RS1\RS2]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
~RS1\RS2]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
~RS1\RS2]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
~RS1\RS2]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
~RS1\RS2]# ip a a 192.168.30.7/32 dev lo
1.两台RS_SERVER主机的设置完成了。记得在不同主机上设置主机名,hostnamectl set-hostname xxx
2.lvs主机要设置2个内网、dip地址,且dip的网关要指向路由器。
~lvs]# ipvsadm –A –t 192.168.30.7:80 –s rr
~lvs]# ipvsadm –a –t 192.168.30.7:80 –r 192.168.30.17
~lvs]# ipvsadm –a –t 192.168.30.7:80 –r 192.168.30.27
~lvs]# 

2、 nginx反向代理,虚拟主机

 基于主机名虚拟主机 
server{
    listen 80;
    server_name ss.ssss.com;
    index index.html;
    root /data/www/html/;
}
基于IP虚拟主机
server{
    listen 192.168.1.88:18080 default;
    server_name ss.ssss.com;
    index index.html;
    root /data/www/html/;
}

反向代理
nginx]# vim conf.d/ilinux.conf
server{
    listen 80;
    server_name ss.ssss.com;
    index index.html;
    root /data/www/html/;
        location / {
                proxy_pass http://www.baidu.com:80;
        }
}