企业生产环境:https部署+nginx高可用(业务不中断)

任务一:Nginx HTTPS 部署

需求:网站启用 HTTPS 加密访问。

1)手动签发 SSL 证书

2)配置 Nginx 支持 HTTPS

3)使用 https://域名 成功访问网站

启动nginx,设置nginx开机自启,查看nginx状态:运行中

创建目录以便于所需文件存放

生成密钥文件和创建自签名证书

在 /usr/local/nginx/ssl/private中生成nginx-selfsigned.key RSA 私钥文件

证书请求文件,寻找CA签发证书(需要填写一些信息,可以回车默认)

生成自签名证书

验证自签证证书是否生成:/usr/local/nginx/ssl/certs/nginx-selfsigned.crt
验证私钥文件是否生成:/usr/local/nginx/ssl/private/nginx-selfsigned.key

进行server配置

vim打开/usr/local/nginx/conf/nginx.conf配置server

复制代码
 server {
        listen        443 ssl;            #告诉nginx监听HTTPS(端口443)
        server_name   killer.com www.killer.com;
#指定SSL证书和密钥对路径
        ssl_certificate /usr/local/nginx/ssl/certs/nginx-selfsigned.crt;
        ssl_certificate_key /usr/local/nginx/ssl/private/nginx-selfsigned.key;
#只启用TLS 1.2 和TLS 1.3,禁用TLS 1.0/1.1
        ssl_protocols TLSv1.2 TLSv1.3;
#强制服务器优先选择加密套件
        ssl_prefer_server_ciphers on;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

为保证所有HTTP到流量都转到HTTPS,可以另外添加以下内容:

复制代码
server {
    listen 80;
    server_name killer.com www.killer.com;
    return 301 https://$host$request_uri;
    http://www.killer.com 
}

nginx-t检查配置,配置正常


重启nginx

结果展示

https访问ip:由于是自签名所以被认为是野鸡网站,安全性低,但虚拟机测试可以尽情访问

点击右边的一直进入

任务二:Nginx + Keepalived 高可用

需求: Web 服务实现高可用,主节点故障自动切换。

环境规划: Nginx × 2(Master / Backup)

白底机器为:192.168.28.100,做主服务器

黑底机器为:192.168.28.128,做备服务器

1) 完成 Nginx + Keepalived 部署

基础配置

关闭防火墙和SELinux

关闭防火墙,关闭开机自启

关闭增强功能

配置主机名,方便区分

确认IP正确

两台机器互相ping通

100可以ping通128

128可以ping通100

安装nginx和epel-release

启动nginx并设置开机自启

验证

做能区分主备的首页

dr1(yum安装)

dr2(源码安装)

验证

keepalived相关

安装Keepalived

启动keepalived

备份原文件配置

keepalived配置(删除基础配置并写入以下内容)

dr1配置

dr2配置

启动服务并查看运行状态

验证VIP落在谁身上

发现VIP123落在权重较大的dr1上

网页验证

现VIP在主上,客户端通过VIP访问到的是主的内容

2) 演示主节点故障切换(VIP 自动漂移)

停掉dr1的keepalived服务
到dr2上观察

VIP自动漂移至dr2

到客户端访问

主挂,备在1s多有接管VIP,业务不中断

3) 验证业务访问不中断

恢复主服务器
查VIP

主恢复后,会在1s左右抢占VIP,业务恢复或一台服务器中断,都能保证业务访问不中断

相关推荐
测试界的小码农28 分钟前
【图数据库实战进阶(01):从零认识 Neo4j,搭建第一个图数据库项目】
数据库·neo4j
xbzb29 分钟前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
Android系统攻城狮40 分钟前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
独隅1 小时前
WebStorm Linux 版安装实战与核心效能展示
linux·ide·webstorm
x_SpiderMan1 小时前
搭建Oracle RAC 集群
数据库·oracle
测试界的小码农1 小时前
【图数据库实战进阶(03):Neo4j 图数据建模实战——节点、关系与属性应该怎么设计?】
数据库·oracle·neo4j
瑞克-桑切斯1 小时前
redis
数据库·redis·缓存
freejackman2 小时前
【工程化】从“单兵作战”到“多引擎架构”:基于门面模式的重构实战
大数据·数据库·hive·sql·测试工具·设计模式·架构
bksczm2 小时前
InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer
数据库·mysql
花间相见2 小时前
【计算基础|Redis02】【上手】五大数据类型命令逐条实操
数据库·redis·后端