第二十周作業

一、用keepalived實現nginx與lvs的高可用集群
keepalived+nginx高可用
環境:
node1:    192.168.31.233     keepalived+nginx master
node2:    192.168.31.72      keepalived+nginx slave
node3:    192.168.31.233     web1
node4:    192.168.31.26      web2
VIP:  192.168.31.100 

1、node1,node2安裝 keepalived nginx軟件包
yum -y install nginx  keepalived

2、node3,node4安裝httpd服務,并配置網頁
   node3 
   yum -y install httpd
   echo server3 >/var/www/html/index.html
   systemctl start httpd.service 
   訪問測試
   node4   
   yum -y install httpd
   echo server4 >/var/www/html/index.html
   systemctl start httpd.service 
   訪問測試
   
3、配置nginx負載均衡 <node1>
在http段內加入
upstream webserver {
        server 192.168.31.26;
        server 192.168.31.23;
        }
在server段location內加入
        proxy_pass http://webserver;
        proxy_set_header X-Real-IP $remote_addr;

4、配置keepalived <node1>
global_defs {
   notification_email {
        root@localhost.com
   }
   notification_email_from admin@localhost.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER             #主服務器
    interface ens33
    virtual_router_id 51
    priority 100     #優先級
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.31.100       #虛擬VIP,客戶段訪問的IP
    }
}

5、拷貝nginx和keepalived的配置文件到node2服務器上,并修改keepalived的配置
scp /etc/nginx/nginx.conf 192.168.31.72:/etc/nginx/
scp /etc/keepalived/keepalived.conf 192.168.31.72:/etc/keepalived/
vim /etc/keepalived/keepalived.conf
state BACKUP         #改為從服務器

6、啟動nginx、keepalived服務,并查看80端口是否起來
nginx
systemctl start keepalived.service

7、測試
http://192.168.31.100 通過訪問VIP能瀏覽到后端的網頁

第二十周作業

第二十周作業

可以看到VIP綁定到node1的網卡上

第二十周作業

模擬node1節點故障,可以看到VIP轉移到node2節點上,訪問后端網頁正常(省略…)

keepalived+lvs高可用

環境:
node1:    192.168.31.233     keepalived+lvs-DR master
node2:    192.168.31.72      keepalived+lvs-DR slave
node3:    192.168.31.233     web1
node4:    192.168.31.26      web2
VIP:        192.168.31.100 

client:    192.168.31.172

1、node1,node2安裝keepalived,ipvsadm軟件包
yum -y install keepalived  ipvsadm

2、修改node1上的keepalived配置文件 
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost.com
   }
   notification_email_from admin@localhost.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER                   #主服務器
    interface ens33
    virtual_router_id 51
    priority 100                    #優先級
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.31.100
    }
}

virtual_server 192.168.31.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    sorry_server 127.0.0.1 80
    persistence_timeout 50
    protocol TCP

real_server 192.168.31.26 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

   real_server 192.168.31.23 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

}

3、修改node2上的keepalived配置文件
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost.com
   }
   notification_email_from admin@localhost.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state BACKUP                   #從服務器
    interface ens33
    virtual_router_id 51
    priority 90 #優先級
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.31.100
    }
}

virtual_server 192.168.31.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    sorry_server 127.0.0.1 80
    persistence_timeout 50
    protocol TCP

real_server 192.168.31.26 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

   real_server 192.168.31.23 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

}

4、啟動node1,node2上的keepalived
systemctl start keepalived 
VIP綁定到node1主服務器上

第二十周作業

5、node3,node4安裝httpd,并創建啟動LVS-DR模式腳本
yum -y install httpd
vim realserver.sh 
#!/bin/bash  
VIP=192.168.31.100
. /etc/rc.d/init.d/functions
case “$1” in
start)
 ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
 /sbin/route add -host $VIP dev lo:0
 echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
 echo “2” >/proc/sys/net/ipv4/conf/lo/arp_announce
 echo “1” >/proc/sys/net/ipv4/conf/all/arp_ignore
 echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
 sysctl -p >/dev/null 2>&1
 echo “RealServer Start OK”  
 ;;
stop)
 ifconfig lo:0 down
 route del $VIP >/dev/null 2>&1
 echo “0” >/proc/sys/net/ipv4/conf/lo/arp_ignore
 echo “0” >/proc/sys/net/ipv4/conf/lo/arp_announce
 echo “0” >/proc/sys/net/ipv4/conf/all/arp_ignore
 echo “0” >/proc/sys/net/ipv4/conf/all/arp_announce
 echo “RealServer Stoped”  
 ;;
 *)
 echo “Usage: $0 {start|stop}”  
 exit 1
esac
exit 0

bash realserver.sh  start

6、客戶端訪問測試
for i in `seq 100`;do curl 192.168.31.100;sleep 1;done
<h1>RS3</h1>
<h1>RS4</h1>
<h1>RS3</h1>
<h1>RS4</h1>
<h1>RS3</h1>
<h1>RS4</h1>
###主服務器宕機時,備機可正常提供服務,訪問正常###
for i in `seq 100`;do curl 192.168.31.100;sleep 1;done
<h1>RS3</h1>
<h1>RS4</h1>
<h1>RS3</h1>
<h1>RS4</h1>
<h1>RS3</h1>
<h1>RS4</h1>

二、授權test用戶通過任意主機連接當前mysql,但每秒中最大查詢次數不得超過5次;此賬戶的同時連接次數不得超過3次

 GRANT USAGE ON *.* TO test@’%’ WITH MAX_QUERIES_PER_HOUR 5;
 GRANT USAGE ON *.* TO test@’%’ WITH MAX_USER_CONNECTIONS 3;


三、導入hellodb.sql生成數據庫,完成以下練習:

(1)在students表中,查詢年齡大于25歲,且為男性的同學的名字和年齡;

> SELECT Name,Age from students WHERE Age>25 AND Gender=’M’;
+————–+—–+
| Name         | Age |
+————–+—–+
| Xie Yanke    |  53 |
| Ding Dian    |  32 |
| Yu Yutong    |  26 |
| Shi Qing     |  46 |
| Tian Boguang |  33 |
| Xu Xian      |  27 |
| Sun Dasheng  | 100 |
+————–+—–+

(2)以ClassID為分組依據,顯示每組的平均年齡;

> SELECT ClassID,avg(age) FROM students GROUP BY ClassID;
+———+———-+
| ClassID | avg(age) |
+———+———-+
|    NULL |  63.5000 |
|       1 |  20.5000 |
|       2 |  36.0000 |
|       3 |  20.2500 |
|       4 |  24.7500 |
|       5 |  46.0000 |
|       6 |  20.7500 |
|       7 |  19.6667 |
+———+———-+
(3) 顯示第2題中平均年齡大于30的分組及平均年齡;

> SELECT ClassID,avg(age) FROM students GROUP BY ClassID HAVING avg(age)>30;            
+———+———-+
| ClassID | avg(age) |
+———+———-+
|    NULL |  63.5000 |
|       2 |  36.0000 |
|       5 |  46.0000 |
+———+———-+

 (4) 顯示以L開頭的名字的同學的信息;
> SELECT * FROM students WHERE Name LIKE ‘L%’;
+——-+————-+—–+——–+———+———–+
| StuID | Name        | Age | Gender | ClassID | TeacherID |
+——-+————-+—–+——–+———+———–+
|     8 | Lin Daiyu   |  17 | F      |       7 |      NULL |
|    14 | Lu Wushuang |  17 | F      |       3 |      NULL |
|    17 | Lin Chong   |  25 | M      |       4 |      NULL |
+——-+————-+—–+——–+———+———–+

(5) 顯示TeacherID非空的同學的相關信息;
> SELECT * FROM students WHERE TeacherID IS NOT NULL;
+——-+————-+—–+——–+———+———–+
| StuID | Name        | Age | Gender | ClassID | TeacherID |
+——-+————-+—–+——–+———+———–+
|     1 | Shi Zhongyu |  22 | M      |       2 |         3 |
|     2 | Shi Potian  |  22 | M      |       1 |         7 |
|     3 | Xie Yanke   |  53 | M      |       2 |        16 |
|     4 | Ding Dian   |  32 | M      |       4 |         4 |
|     5 | Yu Yutong   |  26 | M      |       3 |         1 |
+——-+————-+—–+——–+———+———–+

(6) 以年齡排序后,顯示年齡最大的前10位同學的信息;

> SELECT * FROM students ORDER BY Age DESC LIMIT 10;
+——-+————–+—–+——–+———+———–+
| StuID | Name         | Age | Gender | ClassID | TeacherID |
+——-+————–+—–+——–+———+———–+
|    25 | Sun Dasheng  | 100 | M      |    NULL |      NULL |
|     3 | Xie Yanke    |  53 | M      |       2 |        16 |
|     6 | Shi Qing     |  46 | M      |       5 |      NULL |
|    13 | Tian Boguang |  33 | M      |       2 |      NULL |
|     4 | Ding Dian    |  32 | M      |       4 |         4 |
|    24 | Xu Xian      |  27 | M      |    NULL |      NULL |
|     5 | Yu Yutong    |  26 | M      |       3 |         1 |
|    17 | Lin Chong    |  25 | M      |       4 |      NULL |
|    23 | Ma Chao      |  23 | M      |       4 |      NULL |
|    18 | Hua Rong     |  23 | M      |       7 |      NULL |

+——-+————–+—–+——–+———+———–+


(7) 查詢年齡大于等于20歲,小于等于25歲的同學的信息;用三種方法;

方法一:
> SELECT * FROM students WHERE Age>=20 AND Age<=25;   
+——-+—————+—–+——–+———+———–+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+——-+—————+—–+——–+———+———–+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
|    17 | Lin Chong     |  25 | M      |       4 |      NULL |
|    18 | Hua Rong      |  23 | M      |       7 |      NULL |
|    21 | Huang Yueying |  22 | F      |       6 |      NULL |
|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
|    23 | Ma Chao       |  23 | M      |       4 |      NULL |
+——-+—————+—–+——–+———+———–+

方法二:
> SELECT * FROM students WHERE Age BETWEEN 20 AND 25;       
+——-+—————+—–+——–+———+———–+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+——-+—————+—–+——–+———+———–+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
|    17 | Lin Chong     |  25 | M      |       4 |      NULL |
|    18 | Hua Rong      |  23 | M      |       7 |      NULL |
|    21 | Huang Yueying |  22 | F      |       6 |      NULL |
|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
|    23 | Ma Chao       |  23 | M      |       4 |      NULL |
+——-+—————+—–+——–+———+———–+

方法三:
> SELECT * FROM students WHERE Age IN (20,21,22,23,24,25);
+——-+—————+—–+——–+———+———–+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+——-+—————+—–+——–+———+———–+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
|    17 | Lin Chong     |  25 | M      |       4 |      NULL |
|    18 | Hua Rong      |  23 | M      |       7 |      NULL |
|    21 | Huang Yueying |  22 | F      |       6 |      NULL |
|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
|    23 | Ma Chao       |  23 | M      |       4 |      NULL |
+——-+—————+—–+——–+———+———–+
(8) 顯示前5位同學的姓名、課程及成績;
> SELECT st.Name,co.Course,sc.Score FROM students st,courses co,scores sc WHERE st.StuID=sc.StuID and sc.CourseID=co.CourseID LIMIT 5;
+————-+—————-+——-+
| Name        | Course         | Score |
+————-+—————-+——-+
| Shi Zhongyu | Kuihua Baodian |    77 |
| Shi Zhongyu | Weituo Zhang   |    93 |
| Shi Potian  | Kuihua Baodian |    47 |
| Shi Potian  | Daiyu Zanghua  |    97 |
| Xie Yanke   | Kuihua Baodian |    88 |
+————-+—————-+——-+

(9) 顯示其成績高于80的同學的名稱及課程;
> SELECT st.Name,co.Course FROM students st,courses co,scores sc WHERE st.StuID=sc.StuID and sc.CourseID=co.CourseID AND sc.Score>80;  
+————-+—————-+
| Name        | Course         |
+————-+—————-+
| Shi Zhongyu | Weituo Zhang   |
| Shi Potian  | Daiyu Zanghua  |
| Xie Yanke   | Kuihua Baodian |
| Ding Dian   | Kuihua Baodian |
| Shi Qing    | Hamo Gong      |
| Xi Ren      | Hamo Gong      |
| Xi Ren      | Dagou Bangfa   |
| Lin Daiyu   | Jinshe Jianfa  |
+————-+—————-+

(10) 求前8位同學每位同學自己兩門課的平均成績,并按降序排列;
> SELECT st.Name,sc2.avg_score FROM (SELECT StuID,avg(Score) AS avg_score FROM scores GROUP BY StuID) AS sc2,students st where st.StuID=sc2.StuID ORDER BY avg_score DESC LIMIT 8;
+————-+———–+
| Name        | avg_score |
+————-+———–+
| Shi Qing    |   96.0000 |
| Shi Zhongyu |   85.0000 |
| Xi Ren      |   84.5000 |
| Xie Yanke   |   81.5000 |
| Ding Dian   |   80.0000 |
| Lin Daiyu   |   75.0000 |
| Shi Potian  |   72.0000 |
| Yu Yutong   |   51.0000 |
+————-+———–+

(11) 顯示每門課程課程名稱及學習了這門課的同學的個數;
> SELECT co2.Course,count(co2.StuID) FROM (SELECT co.Course,sc.StuID FROM courses co,scores sc WHERE co.CourseID=sc.CourseID) AS co2 GROUP BY co2.Course;       
+—————-+——————+
| Course         | count(co2.StuID) |
+—————-+——————+
| Dagou Bangfa   |                2 |
| Daiyu Zanghua  |                2 |
| Hamo Gong      |                3 |
| Jinshe Jianfa  |                1 |
| Kuihua Baodian |                4 |
| Taiji Quan     |                1 |
| Weituo Zhang   |                2 |
+—————-+—————–

原創文章,作者:N27_Vicent,如若轉載,請注明出處:http://www.www58058.com/82057

(0)
N27_VicentN27_Vicent
上一篇 2017-07-21
下一篇 2017-07-22

相關推薦

  • 網絡管理之網絡配置與網絡組

    網絡屬性配置 回顧: TCP/IP協議棧:物理層,數據鏈路層,網絡層,傳輸層,應用層,     鏈路數據層:以太網幀     網絡層:IP報文      傳輸層:TCP,UDP     應用…

    Linux干貨 2016-09-06
  • CentOS7的啟動及Systemd的管理?

    CentOS7的啟動流程     POST–>Boot Sequence–>Bootloader–>kernel+initramfs(initrd)–>rootfs–>/sbin/init    &n…

    Linux干貨 2016-09-21
  • linux發行版介紹及其哲學思想

    Linux是一種自由和開源的unix-like操作系統。目前運用領域最廣泛、使用人數最多的操作系統。該操作系統的內核是Linus Torvalds在1991年10月5日首次發布。是一個多任務,多用戶的操作系統,廣泛應用在服務器,手機,平板電腦,電視,電子游戲等領域,我們生活中隨處都可以見到linux身影。 Linux誕生 1991 年,在芬蘭,赫爾辛基大學的…

    2017-09-16
  • N22-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit …

    Linux干貨 2016-09-26
  • Recycled和Recycler的故事

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/156012      首先說明一下,這里不是英語課堂,本文也不是來辨析Recycled和Recycler這兩個單詞的含義。Recy…

    Linux干貨 2015-03-25
  • linux基礎學習-第六天

    2016-08-02 授課內容: 用戶和組管理命令 理解并設置文件權限 默認權限 特殊權限 文件ACL 用戶和組管理命令 用戶和組的配置文件:/etc/default/useradd(相當于useradd -D)、/etc/skel(創建用戶的家目錄配置文件)、/etc/login.defs(修改用戶的密碼策略配置) /etc/default/useradd…

    Linux干貨 2016-08-04

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-07-27 00:06

    總體還不錯。
    做類似的實驗,建議給出拓撲圖和實驗的效果會讓閱讀者更好的了解博文內容;繼續加油~

欧美性久久久久