个人学习(3)

1、简述HTTP交互原理

image

2、实现一个Nginx热部署

image
image

修改index.html,reload nginx后查看网页:# vim /usr/share/nginx/html/index.html

image
image

平滑升级nginx到最新版1.20.0

image
image

3、搭建一款Wordpress博客系统

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

访问192.168.1.100:38189:

image

4、简述对称加密与非对称加密

对称加密:加密和解密用同一个秘钥

优点:加解密速度快,性能开销小 [适合加密大量数据]

缺点:密钥分发难(如果通讯方数量庞大,实现共享秘钥困难),不能实现抗抵赖性(缺少签名机制),存在被抓包破解的风险

非对称加密: 加密和解密用不同的秘钥

公钥加密的数据只能用私钥解密,用私钥加密的数据只能用公钥解密。私钥永远能掌握在自己手中。

优点:秘钥分发容易(存在对外公开的公钥,和永远不对外公开的私钥,无法从一个密钥推导出另一个),可实现抗抵赖性

缺点:速度慢,效率低(计算复杂|性能开销大),不适合加密大量数据

区别:

1、加密算法不同
在非对称加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。
在对称加密中使用的主要算法有:DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption Standard)、Blowfish等。

2、加密安全性不同
对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。
而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。非对称加密与,其安全性更好。

3、加密耗时不同
非对称加密使用一对秘钥,一个用来加密,一个用来解密,这样加密和解密花费时间就会更长长。
对称加密中加密方和解密方使用同一个密钥,加密解密的速度比较快,耗时短,适合数据比较长时的使用。

image

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

}


image.png
image
#!/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

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

设置启动/关闭脚本:

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

验证测试:


image.png

image.png

停掉nginx01的keepalived,nginx,验证高可用:


image.png

image.png

查看nginx02上的vip:


image.png

访问测试:
image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容