Centos7+LVS-NAT+apache實驗


一、簡介

  1、理論已經在上一篇博客簡述,不了解得可以看看

    https://www.cnblogs.com/zhangxingeng/p/10497279.html 

  2、LVS-NAT優缺點復習

    

    關於這種模式

    1、RIP和DIP一般處於同一私有網段中。但並非必須,RS的網關要指向DIP,這樣能保證將響應數據交給Director

    2、支持端口映射,可修改請求報文的目標端口;

    3、VS/NAT模式的最大缺點使Director負責所有進出數據:不僅處理客戶端發起的請求,還負責將響應傳輸給客戶端。而響應數據一般比請求數據大得多,調度器Director容易出現瓶頸。(也就是像7層負載的處理方式一樣,但卻沒有7層負載那么多功能)

    4、vs必須使linux系統,RS可以是任何系統

    缺點:在整個過程中,所有輸入輸出的流量都要經過LVS調度器,調度器網絡I/O壓力就會非常大,因此很容易稱為瓶頸,特別使對請求流量很小,而響應流量很大的web類應用來說更為如此;

    優點:NAT模式配置管理簡單,由於使用了NAT技術,LVS調度器及應用服務器可以在不同網段中,網絡架構靈活,應用服務器只需要進行簡單的網絡設定即可加入集群。

 

  3、實驗拓撲

    

     說明:虛擬機做實驗有關網段的設計,Director調度器需要配置兩塊網卡,我們CIP和VIP可以用NAT模式,DIP、RS、NFS可以用僅主機模式。

 

 

 

二、開始部署

    1、網絡配置

      添加網卡后別忘了點擊設備狀態“已連接”

 1 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37
 2 TYPE="Ethernet"
 3 BOOTPROTO="static"
 4 DEFROUTE="yes"
 5 IPV4_FAILURE_FATAL="no"
 6 IPV6INIT="yes"
 7 IPV6_AUTOCONF="yes"
 8 IPV6_DEFROUTE="yes"
 9 IPV6_FAILURE_FATAL="no"
10 IPV6_ADDR_GEN_MODE="stable-privacy"
11 NAME="ens37"
12 UUID="4f788070-131a-4f10-85a8-179b4f14gg48"
13 DEVICE="ens37"
14 ONBOOT="yes"
15 DNS1=192.168.13.2
16 IPADDR=192.168.13.11
17 #PREFIX=24
18 GATEWAY=192.168.13.2
19 IPV6_PEERDNS=yes
20 IPV6_PEERROUTES=yes
21 ~                     
22 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
23 TYPE="Ethernet"
24 BOOTPROTO="static"
25 DEFROUTE="yes"
26 IPV4_FAILURE_FATAL="no"
27 IPV6INIT="yes"
28 IPV6_AUTOCONF="yes"
29 IPV6_DEFROUTE="yes"
30 IPV6_FAILURE_FATAL="no"
31 IPV6_ADDR_GEN_MODE="stable-privacy"
32 NAME="ens33"
33 UUID="4f788080-131a-4f10-85a8-179b4f14ab48"
34 DEVICE="ens33"
35 ONBOOT="yes"
36 DNS1=192.168.216.2
37 IPADDR=192.168.216.51
38 PREFIX=24
39 GATEWAY=192.168.216.2
40 IPV6_PEERDNS=yes
41 IPV6_PEERROUTES=yes
#在添加一塊網卡后,沒有網卡設置,請按照自己得ip自行配制即可
42 [root@web1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37 
43 TYPE="Ethernet"
44 BOOTPROTO="static"
45 DEFROUTE="yes"
46 IPV4_FAILURE_FATAL="no"
47 IPV6INIT="yes"
48 IPV6_AUTOCONF="yes"
49 IPV6_DEFROUTE="yes"
50 IPV6_FAILURE_FATAL="no"
51 IPV6_ADDR_GEN_MODE="stable-privacy"
52 NAME="ens37"
53 UUID="4f788070-131a-4f10-85a8-179b4f14gg48"
54 DEVICE="ens37"
55 ONBOOT="yes"
56 DNS1=192.168.13.2
57 IPADDR=192.168.13.11
58 #PREFIX=24
59 GATEWAY=192.168.13.2

60 IPV6_PEERDNS=yes
61 IPV6_PEERROUTES=yes

 

    2、關閉防火牆及selinux

1       systemctl stop firewalld
2 
3       systemctl disable firewalld
4 
5       sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 

 

    3、安裝軟件

1       51上安裝ipvsadm     
2         yum install ipvsadm -y 
3       12、13安裝httpd
4         yum install httpd -y
5       14上安裝nfs,rpcbind
6         yum install nfs-utils rpcbind -y  

 

   

    4、配置web2、web3的網關改為192.168.13.11

 1       web2
 2 
 3         echo "welcom to web2" >/var/www/html/index.html
 4 
 5       web3
 6         echo "welcom to web3" >/var/www/html/index.html
 7       兩台同時配置網關
            響應報文的目標地址是CIP,所以RS網關需要執行Director的DIP

          
8         route add default gw 192.168.13.11 9         systemctl restart httpd 10         systemctl enable httpd 11       

 

    5、配置director調度器

 1       
 2 
 3       
 4 
 5       開啟轉發功能
          director接收到CIP的數據包,需要轉發給RS處理,接着VIP收到數據需要轉發DIP,所以需要開啟轉發功能
6 7         echo 1 > /proc/sys/net/ipv4/ip_forward 8 9       配置負載調度器SNAT轉發規則 10         ipvsadm -A -t 192.168.216.51:80 -s rr 11         ipvsadm -a -t 192.168.216.51:80 -r 192.168.13.12:80 -m -w 1 12         ipvsadm -a -t 192.168.216.51:80 -r 192.168.13.13:80 -m -w 1 13       檢查規則 14         ipvsadm -Ln       15 16        17 18 [root@web1 ~]# ipvsadm -Ln 19 IP Virtual Server version 1.2.1 (size=4096) 20 Prot LocalAddress:Port Scheduler Flags 21 -> RemoteAddress:Port Forward Weight ActiveConn InActConn 22 TCP 192.168.216.51:80 rr 23 -> 192.168.13.12:80 Masq 1 0 0 24 -> 192.168.13.13:80 Masq 1 0 0 25 [root@web1 ~]#

    6、測試功能

      director調度器上基本測試

        ping兩台RS,並訪問web

 1 [root@web1 ~]# ping 192.168.13.12
 2 PING 192.168.13.12 (192.168.13.12) 56(84) bytes of data.
 3 64 bytes from 192.168.13.12: icmp_seq=1 ttl=64 time=0.683 ms
 4 64 bytes from 192.168.13.12: icmp_seq=2 ttl=64 time=2.15 ms
 5 ^C
 6 --- 192.168.13.12 ping statistics ---
 7 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
 8 rtt min/avg/max/mdev = 0.683/1.418/2.153/0.735 ms
 9 [root@web1 ~]# ping 192.168.13.13
10 PING 192.168.13.13 (192.168.13.13) 56(84) bytes of data.
11 64 bytes from 192.168.13.13: icmp_seq=1 ttl=64 time=0.654 ms
12 64 bytes from 192.168.13.13: icmp_seq=2 ttl=64 time=0.589 ms
13 ^C
14 --- 192.168.13.13 ping statistics ---
15 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
16 rtt min/avg/max/mdev = 0.589/0.621/0.654/0.040 ms
17 [root@web1 ~]# curl 192.168.13.12
18 welcom to web2
19 [root@web1 ~]# curl 192.168.13.13
20 welcom to web3
21 [root@web1 ~]#

      client上訪問192.168.216.51

1 [root@web5 ~]# curl 192.168.216.51
2 welcom to web3
3 [root@web5 ~]# curl 192.168.216.51
4 welcom to web2
5 [root@web5 ~]# curl 192.168.216.51
6 welcom to web3
7 [root@web5 ~]# curl 192.168.216.51
8 welcom to web2

    7、配置后端共享存儲NFS

      前面已經安裝了程序包這里只需要配置

 1 #設置共享目錄,權限
 2 [root@web4 cdrom]# mkdir -p /data/www/
 3 [root@web4 cdrom]# vim /etc/exports
 4 /data/www 192.168.13.0/24(ro,sync,no_root_squash)
 5 #設置index.html文件
 6 [root@web4 cdrom]# cd /data/www/
 7 [root@web4 www]# echo "this is www data" index.html
 8 #啟動並開機自啟
 9 [root@web4 cdrom]# systemctl start rpcbind
10 [root@web4 cdrom]# systemctl start nfs
11 [root@web4 cdrom]# systemctl enable rpcbind
12 [root@web4 cdrom]# systemctl enable nfs    
13 #查看可掛載目錄,13網段其他機器也可以使用測試
14 [root@web4 www]# showmount -e 192.168.13.14
15 Export list for 192.168.13.14:
16 /data/www 192.168.13.0/24    

      測試

        web2、web3執行掛載

      

1 [root@web2 yum.repos.d]# showmount -e 192.168.13.14
2 Export list for 192.168.13.14:
3 /data/www 192.168.13.0/24
4 [root@web2 yum.repos.d]# mount 192.168.13.14:/data/www /var/www/html

        client測試

 1 root@web5 ~]# curl 192.168.216.51
 2 this is www data
 3 [root@web5 ~]# curl 192.168.216.51
 4 this is www data
 5 [root@web5 ~]# curl 192.168.216.51
 6 this is www data
 7 [root@web5 ~]# curl 192.168.216.51
 8 this is www data
 9 [root@web5 ~]# curl 192.168.216.51
10 this is www data
11 [root@web5 ~]# curl 192.168.216.51
12 this is www data

       調度器上可以看到統計信息及連接條目

 1 [root@web1 ~]# ipvsadm -ln --stats  #統計信息
 2 IP Virtual Server version 1.2.1 (size=4096)
 3 Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
 4   -> RemoteAddress:Port
 5 TCP  192.168.216.51:80                  55      327      212    21634    25072
 6   -> 192.168.13.12:80                   27      162      108    10746    12751
 7   -> 192.168.13.13:80                   28      165      104    10888    12321
 8 [root@web1 ~]# ipvsadm -lnc   #連接條目
 9 IPVS connection entries
10 pro expire state       source             virtual            destination
11 TCP 01:53  TIME_WAIT   192.168.216.55:56712 192.168.216.51:80  192.168.13.12:80
12 TCP 01:56  TIME_WAIT   192.168.216.55:56724 192.168.216.51:80  192.168.13.12:80
13 TCP 01:56  TIME_WAIT   192.168.216.55:56716 192.168.216.51:80  192.168.13.12:80
14 TCP 01:56  TIME_WAIT   192.168.216.55:56718 192.168.216.51:80  192.168.13.13:80
15 TCP 01:56  TIME_WAIT   192.168.216.55:56722 192.168.216.51:80  192.168.13.13:80
16 TCP 01:56  TIME_WAIT   192.168.216.55:56720 192.168.216.51:80  192.168.13.12:80
17 TCP 01:55  TIME_WAIT   192.168.216.55:56714 192.168.216.51:80  192.168.13.13:80
18 [root@web1 ~]# 

 

轉載請注明出處:https://www.cnblogs.com/zhangxingeng/p/10538679.html 

      

            

      

    

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM