1、简述HTTP交互原理
2、实现一个Nginx热部署
修改index.html,reload nginx后查看网页:# vim /usr/share/nginx/html/index.html
平滑升级nginx到最新版1.20.0
3、搭建一款Wordpress博客系统
安装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;
}
}
访问192.168.1.100:38189:
4、简述对称加密与非对称加密
对称加密:加密和解密用同一个秘钥
优点:加解密速度快,性能开销小 [适合加密大量数据]
缺点:密钥分发难(如果通讯方数量庞大,实现共享秘钥困难),不能实现抗抵赖性(缺少签名机制),存在被抓包破解的风险
非对称加密: 加密和解密用不同的秘钥
公钥加密的数据只能用私钥解密,用私钥加密的数据只能用公钥解密。私钥永远能掌握在自己手中。
优点:秘钥分发容易(存在对外公开的公钥,和永远不对外公开的私钥,无法从一个密钥推导出另一个),可实现抗抵赖性
缺点:速度慢,效率低(计算复杂|性能开销大),不适合加密大量数据
区别:
1、加密算法不同
在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
在对称加密中使用的主要算法有:DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption Standard)、Blowfish等。
2、加密安全性不同
对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。
而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。非对称加密与,其安全性更好。
3、加密耗时不同
非对称加密使用一对秘钥,一个用来加密,一个用来解密,这样加密和解密花费时间就会更长长。
对称加密中加密方和解密方使用同一个密钥,加密解密的速度比较快,耗时短,适合数据比较长时的使用。
yum install keepalived nginx ipvsadm -y
备份keepalived配置文件
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
配置nginx01的负载均衡配置文件
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的负载均衡配置文件
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是否存活,如果不存活则尝试启动Nginx
if [ $nginxpid -eq 0 ];then
systemctl start nginx
sleep 2
#2.等待2秒后再次获取一次Nginx状态
nginxpid=$(pidof nginx | wc -l)
#3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本
if [ $nginxpid -eq 0 ];then
systemctl stop keepalived
pkill keepalived
fi
fi
master节点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节点配置
! 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响应:
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
设置启动/关闭脚本:
#!/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"
验证测试:
停掉nginx01的keepalived,nginx,验证高可用:
查看nginx02上的vip:
访问测试: