個(gè)人學(xué)習(xí)(3)

1、簡(jiǎn)述HTTP交互原理

image

2、實(shí)現(xiàn)一個(gè)Nginx熱部署

image
image

修改index.html,reload nginx后查看網(wǎng)頁(yè):# vim /usr/share/nginx/html/index.html

image
image

平滑升級(jí)nginx到最新版1.20.0

image
image

3、搭建一款Wordpress博客系統(tǒng)

安裝nginx-1.20,php-7.4, mysql5.6

image
image
image

image

server {
listen 38189;
server_name 192.168.1.100;
root /data/opt/wordpress;
index index.php index.html;
location ~ .php{ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAMEdocument_root$fastcgi_script_name;
include fastcgi_params;
}
}

訪問(wèn)192.168.1.100:38189:

image

4、簡(jiǎn)述對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密

對(duì)稱(chēng)加密:加密和解密用同一個(gè)秘鑰

優(yōu)點(diǎn):加解密速度快,性能開(kāi)銷(xiāo)小 [適合加密大量數(shù)據(jù)]

缺點(diǎn):密鑰分發(fā)難(如果通訊方數(shù)量龐大,實(shí)現(xiàn)共享秘鑰困難),不能實(shí)現(xiàn)抗抵賴(lài)性(缺少簽名機(jī)制),存在被抓包破解的風(fēng)險(xiǎn)

非對(duì)稱(chēng)加密: 加密和解密用不同的秘鑰

公鑰加密的數(shù)據(jù)只能用私鑰解密,用私鑰加密的數(shù)據(jù)只能用公鑰解密。私鑰永遠(yuǎn)能掌握在自己手中。

優(yōu)點(diǎn):秘鑰分發(fā)容易(存在對(duì)外公開(kāi)的公鑰,和永遠(yuǎn)不對(duì)外公開(kāi)的私鑰,無(wú)法從一個(gè)密鑰推導(dǎo)出另一個(gè)),可實(shí)現(xiàn)抗抵賴(lài)性

缺點(diǎn):速度慢,效率低(計(jì)算復(fù)雜|性能開(kāi)銷(xiāo)大),不適合加密大量數(shù)據(jù)

區(qū)別:

1、加密算法不同
在非對(duì)稱(chēng)加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。
在對(duì)稱(chēng)加密中使用的主要算法有:DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption Standard)、Blowfish等。

2、加密安全性不同
對(duì)稱(chēng)加密的通信雙方使用相同的秘鑰,如果一方的秘鑰遭泄露,那么整個(gè)通信就會(huì)被破解。
而非對(duì)稱(chēng)加密使用一對(duì)秘鑰,一個(gè)用來(lái)加密,一個(gè)用來(lái)解密,而且公鑰是公開(kāi)的,秘鑰是自己保存的,不需要像對(duì)稱(chēng)加密那樣在通信之前要先同步秘鑰。非對(duì)稱(chēng)加密與,其安全性更好。

3、加密耗時(shí)不同
非對(duì)稱(chēng)加密使用一對(duì)秘鑰,一個(gè)用來(lái)加密,一個(gè)用來(lái)解密,這樣加密和解密花費(fèi)時(shí)間就會(huì)更長(zhǎng)長(zhǎng)。
對(duì)稱(chēng)加密中加密方和解密方使用同一個(gè)密鑰,加密解密的速度比較快,耗時(shí)短,適合數(shù)據(jù)比較長(zhǎng)時(shí)的使用。

image

yum install keepalived nginx ipvsadm -y

備份keepalived配置文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

配置nginx01的負(fù)載均衡配置文件

vim /etc/nginx/conf.d/web01.conf

server {
listen 31801;
server_name 192.168.1.101;
location / {
index index.html;
root /data/keep;
}
}

vim /etc/nginx/conf.d/keep.conf

upstream web {
server 192.168.1.101:31801;
server 192.168.1.102:31801;
}
server {
listen 31800;
server_name 192.168.1.101;

    location / {
            proxy_pass http://web;
    }

}
配置nginx02的負(fù)載均衡配置文件

vim /etc/nginx/conf.d/web01.conf

server {
listen 31801;
server_name 192.168.1.102;
location / {
index index.html;
root /data/keep;
}
}

vim /etc/nginx/conf.d/keep.conf

upstream web {
server 192.168.1.101:31801;
server 192.168.1.102:31801;
}
server {
listen 31800;
server_name 192.168.1.102;

    location / {
            proxy_pass http://web;
    }

}


image.png
image
#!/bin/sh
nginxpid=$(pidof nginx | wc -l)
#1.判斷Nginx是否存活,如果不存活則嘗試啟動(dòng)Nginx
if [ $nginxpid -eq 0 ];then
    systemctl start nginx
    sleep 2
    #2.等待2秒后再次獲取一次Nginx狀態(tài)
nginxpid=$(pidof nginx | wc -l)
    #3.再次進(jìn)行判斷, 如Nginx還不存活則停止Keepalived,讓地址進(jìn)行漂移,并退出腳本
    if [ $nginxpid -eq 0 ];then
        systemctl stop keepalived
pkill keepalived
  fi
fi

master節(jié)點(diǎn)keepalived配置

! Configuration File for keepalived
  
global_defs {
    router_id LVS_LB02
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.200
    }
}
virtual_server 192.168.1.200 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    persistence_timeout 5
    protocol TCP

    real_server 192.168.1.101 31800 {
        weight 1
        TCP_CKECK {
           connect_port 31800
           connect_timeout 3
           nb_get_retry 2
           delay_beefore_retry 3
        }
    }
    real_server 192.168.1.102 31800 {
        weight 1
        TCP_CKECK {
           connect_port 31800
           connect_timeout 3
           nb_get_retry 2
           delay_beefore_retry 3
        }
    }
}

slave節(jié)點(diǎn)配置

! Configuration File for keepalived
global_defs {
    router_id LVS_LB02
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.200
    }
}
virtual_server 192.168.1.200 80 {
    delay_loop 6
    lb_algo wlc
    lb_kind DR
    persistence_timeout 5
    protocol TCP

    real_server 192.168.1.101 31800 {
        weight 1
        TCP_CKECK {
           connect_port 31800
           connect_timeout 3
           nb_get_retry 2
           delay_beefore_retry 3
        }
    }
    real_server 192.168.1.102 31800 {
        weight 1
        TCP_CKECK {
           connect_port 31800
           connect_timeout 3
           nb_get_retry 2
           delay_beefore_retry 3
        }
    }
}

RS01和RS02上綁定VIP,并配置抑制ARP響應(yīng):

ifconfig lo:0 192.168.1.200 netmask 255.255.255.255 up

route add -host 192.168.1.200 dev lo:0

ifconfig lo:0

image.png

image.png

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

設(shè)置啟動(dòng)/關(guān)閉腳本:

#!/bin/bash
vip=192.168.1.200
ifconfig  lo:0 $vip broadcast $vip netmask 255.255.255.255 up
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 "start LVS of RS"
#!/bin/bash
vip=192.168.1.200
ifconfig  lo:0 down
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
sysctl -p >/dev/null 2>&1
echo "close LVS of RS"

驗(yàn)證測(cè)試:


image.png

image.png

停掉nginx01的keepalived,nginx,驗(yàn)證高可用:


image.png

image.png

查看nginx02上的vip:


image.png

訪問(wèn)測(cè)試:
image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容