Keepalived + Nginx反向代理 - 基础配置.note
·环境准备:

一、配置 Nginx 反向代理
1、生成证书:
(1)编辑证书属性:
vim /etc/ssl/openssl.cnf
:set number
:202
(2)创建证书颁发机构,并生成证书:
/usr/lib/ssl/misc/CA.pl -newca //生成CA根证书颁发机构
/usr/lib/ssl/misc/CA.pl -newreq-nodes //生成一个证书申请
/usr/lib/ssl/misc/CA.pl -sign //签发证书此时会在当前目录看到证书及其私钥:(newreq.pem是证书申请,可以直接删除)

2、配置 后端服务器 的 https页面:
(1)将 证书及私钥 传给后端服务器:
scp ~/new* root@192.168.10.80:/etc/ssl
scp ~/new* root@192.168.10.81:/etc/ssl
scp ~/new* root@192.168.10.82:/etc/ssl
scp ~/new* root@192.168.10.83:/etc/ssl(2)【Nginx】编辑 https 页面:
vim /etc/nginx/sites-enalbed/default
重启服务
(3)【Apache】编辑 https 页面:
a2enmod ssl
vim /etc/apache2/sites-enalbed/000-default.conf
重启服务
3、【https】配置 Nginx反向代理 - 高可用负载均衡:
4、配置 Nginx 反向代理服务器:
(1)编辑 Nginx:
apt install -y nginx
vim /etc/nginx/sites-enabled/default
重启服务
(2)将 其复制到 另一台 Nginx反向代理服务器上:
scp /etc/nginx/sites-enabled/default root@192.168.10.253:/etc/nginx/sites-enabled5、在 客户端上进行访问:
(1)在 客户端 上访问 http 页面:

(2)在 客户端 上访问 https 页面:

二、配置 Keepalived 检测 Nginx反向代理服务器:
1、配置 Keepalived:
(1)配置 Keepalived Master 服务器:
apt install -y Keepalived
cp /etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
重启服务
(3)将 配置文件 scp 传递给 另一台 Keepalived Backup:
scp /etc/keepalived/keepalived.conf root@192.168.10.253:/etc/keepalived重启服务
2、进行验证:
(1)查看 Keepalived Master 的IP:
此时应有 192.168.20.254 这个虚拟IP地址

·在客户端上进行访问:

(2)停止 Keepalived Master 检测的 Nginx 服务,再查看IP地址:
systemctl stop nginx
# 等待5秒
ip a此时虚拟IP地址应该消失了:

(3)查看 Keepalived Backup 的虚拟IP地址

·在客户端上进行访问:

三、配置 动静分离,将动态的请求发送给指定的服务器:
1、在 客户端上 配置 php动态页面:
(1)Nginx:
apt install php8.2-fpm -y
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
vim /etc/nginx/nginx.conf
(2)Apache2:
apt install php8.2-fpm libapache2-mod-php8.2 -y //libapache2-mod-php8.2 用于兼容php与apache2
或:
apt install php libapache2-mod-php
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
systemctl restart apache22、配置 Nginx:
(1)修改 Nginx 反向代理配置:
vim /etc/nginx/sites-enalbed/default
# 增加以下配置(旧配置无需修改)
(2)将 配置文件 scp 传递给 Keepalived Backup:
scp /etc/nginx/sites-enalbed/default root@192.168.10.253:/etc/nginx/sites-enalbed3、在 客户端上尝试进行访问:
(1)访问正常的静态页面:

(2)加上 .php 后缀,访问动态页面:
