溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keepalived+nginx

發布時間:2020-06-28 20:53:15 來源:網絡 閱讀:662 作者:季涼末一 欄目:建站服務器


我們先來談談keepalived的工作原理:

keepalived的工作原理基于三個層面,分別時IP層,TCP層和應用層
IP 層:keepalived會定期向服務器集群中的服務器發送一個類似于ping程序的ICMP數據包。通俗理解就是我keepalived來ping你服 務器,我要是ping通了,那我知道你還活著,咱們可以繼續合作,如果不幸發現你掛了,那就得把這臺服務器踢了。該層就是確保服務器ip地址有效,一次來 判斷這臺服務器可否繼續在崗謀職。
TCP層:這一層和IP層類似,只不過IP層檢查的是IP,該層檢查TCP端口。keepalived在IP層 且報你服務器的IP有效,然后繼續看你的TCP端口,比如說你是web server,那你的80端口就應該開啟,如果keepalived發現你的80端口沒有啟動。那么它就會認為你已經掛掉,然后剔除。
應用層:這一層就是具體的工作程序了,keepalived是個恪盡職守的檢察官,應用層的程序與用戶的設定息息相關,keepalived則通過檢查服務器的運行是否和用戶設定一致,如果不一致,keepalived就會宣判這臺服務器犧牲。

keepalived + nginx

主機:172.25.44.3    server3
備機:172.25.44.4    server4

配置虛擬ip

[root@server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0DEVICE=eth0:0TYPE=EthernetONBOOT=yesBOOTPROTO=staticDNS1=172.25.44.44IPADDR=172.25.44.100NETMASK=255.255.255.0GETWAY=172.25.44.44[root@server3 ~]# /etc/init.d/network restart[root@server3 ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.4  Bcast:172.25.44.255  Mask:255.255.255.0          inet6 addr: fe80::5054:ff:fe48:603e/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:11926 errors:0 dropped:0 overruns:0 frame:0          TX packets:6533 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:25662550 (24.4 MiB)  TX bytes:876645 (856.0 KiB)
eth0:0    Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.100  Bcast:172.25.44.255  Mask:255.255.255.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
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:36283 errors:0 dropped:0 overruns:0 frame:0          TX packets:36283 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:1982812 (1.8 MiB)  TX bytes:1982812 (1.8 MiB)
主備機均需配置

安裝nginx

安裝包:nginx-1.10.3.tar.gz
解壓安裝包:tar zxf nginx-1.10.3.tar.gz

[root@server3 software]# cd nginx-1.10.3 —prefix=/usr/local/lnmp/nignx
[root@server3 nginx-1.10.3]# ./configure
[root@server3 nginx-1.10.3]# make
[root@server3 nginx-1.10.3]# make install
[root@server3 nginx-1.10.3]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
#創建nginx的軟鏈接


配置nginx
[root@server3 nginx-1.10.3]# cd /usr/local/lnmp/nginx/conf[root@server3 conf]# vim nginx.conf/#訪問8088端口是的發布目錄為/var/www/html,而nginx的默認發布目錄還是/usr/local/lnmp/nginx/html
server {        listen       8088;#監聽8088端口        server_name  localhost;
    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/lnmp/nginx/html;
    }
}
[root@server3 conf]# cd /var/www/html[root@server3 html]# vim index.html
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h2>Welcome to nginx! 172.25.44.3</h2></center>
</body>
</html>
[root@server3 html]# nginx

安裝keepalived

安裝包:keepalived-1.2.2.tar.gz

[root@server3 software]# wget 
http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
[root@server3 software]# tar zxf keepalived-1.2.2.tar.gz
[root@server3 software]# cd keepalived-1.2.2
[root@server3 keepalived-1.2.2]# ./configure
[root@server3 keepalived-1.2.2]# make
[root@server3 keepalived-1.2.2]# make install
[root@server3 keepalived-1.2.2]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@server3 keepalived-1.2.2]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server3 keepalived-1.2.2]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@server3 keepalived-1.2.2]# cp -r /usr/local/etc/keepalived/ /etc/
配置leepalived
[root@server3 keepalived-1.2.2]# vim /var/www/html/index.html
global_defs {
    router_id LVS_DEVEL
}
vrrp_script chk_http_port {
    script “</dev/tcp/127.0.0.1/8088”
    interval 1
    weight -2
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.44.100
    }
    track_script {
        chk_http_port
    }
#state MASTER:MASTER主機,BACKUP備機#priority 100:優先級指定,數字越大優先級越高#virtual_ipaddress:指定vip#track_scrip:檢查端口
[root@server3 keepalived-1.2.2]# /etc/init.d/keepalived start

備機次同步主機的操作步驟:keepalived的配置文件中,主機的state為MASTER,備機的state為BACKUP,備機的priority要小于主機

測試

驗證nginx啟動正常

訪問主機nginx的默認頁

keepalived+nginx

訪問主機nginx的指定頁

keepalived+nginx

訪問備機nginx的默認頁

keepalived+nginx

訪問備機nginx的指定頁

keepalived+nginx

訪問vip

主機server3的優先級更高,在主機完好的情況下,有server3來負載nginx運行

keepalived+nginx

[root@server3 software]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]
當主機的keeplived服務掛掉的時候,在則訪問vip,則由備機自動負載nginx運行
[root@server4 conf]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:48:60:3e brd ff:ff:ff:ff:ff:ff
    inet 172.25.44.4/24 brd 172.25.44.255 scope global eth0
    inet 172.25.254.104/24 brd 172.25.254.255 scope global eth0
    inet 172.25.44.100/32 scope global eth0
    inet 172.25.44.100/24 brd 172.25.44.255 scope global secondary eth0:0
    inet6 fe80::5054:ff:fe48:603e/64 scope link
       valid_lft forever preferred_lft forever
同時可以看到vip浮動在備機server4上

keepalived+nginx

[root@server3 software]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
啟動主機server3上的keepalived服務,再次訪問vip,則nginx的負載運行又回到主機server3上
[root@server3 software]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:b4:14:0d brd ff:ff:ff:ff:ff:ff
    inet 172.25.44.3/24 brd 172.25.44.255 scope global eth0
    inet 172.25.254.103/24 brd 172.25.254.255 scope global eth0
    inet 172.25.44.100/32 scope global eth0
    inet6 fe80::5054:ff:feb4:140d/64 scope link
       valid_lft forever preferred_lft forever
該情況下查看ip,發現vip浮動在主機server3上

keepalived+nginx

在應用層出問題的情況下,如停掉主機server3的nginx服務,則備機server4也會自動接管nginx支持前端的訪問
[root@server3 software]# killall nginx

keepalived+nginx

問題補充:在備機keepalived的配合配置文件中,如果補修改state的情況下實驗也是可以成功的,我覺得應該時兩個機子通過priority優先級競爭。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女