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

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


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


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


3、搭建一款Wordpress博客系統(tǒng)
安裝nginx-1.20,php-7.4, mysql5.6




server {
listen 38189;
server_name 192.168.1.100;
root /data/opt/wordpress;
index index.php index.html;
location ~ .php
include fastcgi_params;
}
}
訪問(wèn)192.168.1.100:38189:

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í)的使用。

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;
}
}


#!/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


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è)試:


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


查看nginx02上的vip:

訪問(wèn)測(cè)試:

