Nginx HTTPS实践

news2025/4/3 22:48:46

Nginx HTTPS实践

文章目录

  • Nginx HTTPS实践
  • 1.HTTPS基本概述
    • 1.1.为何需要HTTPS
    • 1.2.什么是HTTPS
    • 1.3.TLS如何实现加密
  • 2.HTTPS实现原理
    • 2.1.加密模型-对称加密
    • 2.2.加密模型-非对称加密
    • 2.3.身份验证机构-CA
    • 2.4.HTTPS通讯原理
  • 3.HTTPS扩展知识
    • 3.1.HTTPS证书类型
    • 3.2.HTTPS购买建议
    • 3.3.HTTPS颜色标识
  • 4.HTTPS单台配置实践
    • 4.1.配置SSL语法
    • 4.1.创建SSL证书
      • 1.创建证书存储目录
      • 2.使用openssl命令充当CA权威机构创建证书(类似黑户)
      • 3.生成自签证书,同时去掉私钥的密码
    • 4.1.配置SSL场景
      • 4.3.访问验证SSL
    • 4.4.强制跳转Https
  • 5.HTTPS集群配置实践
    • 5.1.环境准备
    • 5.2.配置应用节点
    • 5.3.配置负载均衡
      • 1.创建ssl证书
      • 2.nginx负载均衡配置文件如下
  • 6.HTTPS场景配置实践
    • 6.1.场景实践-1
      • 1.配置http://star.wzx.net
      • 2.配置http://yh.wzx.net(主页页面)
    • 6.2.场景实践-2
  • 7.HTTPS优化配置实践
    • 7.1.优化基本概述
    • 7.2.优化配置实例

1.HTTPS基本概述

1.1.为何需要HTTPS

因为HTTP采用的是明文传输数据,那么在传输(账号密码、交易信息等敏感数据)时不安全。容易遭到篡改
如果使用HTTPS协议,数据在传输过程中是加密的,能够有效避免网站传输时信息泄露

1.2.什么是HTTPS

HTTPS安全的超文本传输协议,我们现在大部分站点都是通过HTTPS来实现站点数据安全。
早期网景公司设计了SSL(Secure Socket Layer)安全套接层协议,主要对HTTP协议传输的数据进行加密。那如何将站点变成安全的HTTPS站点呢?我们需要了解SSL(Secure Socket Layer)协议。
而现在很多时候我们使用的是TLS(Transport Layer Security)传输层安全协议来实现的加密与解密

1.3.TLS如何实现加密

TLS/SSL是如何实现HTTP明文消息被加密的,TLS/SSL工作在OSI七层模型中,应用层与传输层之间。
1.提供数据安全:保证数据不会被泄露
2.提供数据的完整性:保证数据在传输过程中不会被篡改
3.对应用层交给传输层的数据进行加密与解密。

在这里插入图片描述

2.HTTPS实现原理

2.1.加密模型-对称加密

对称加密:两个想通讯的人持有相同的秘钥,进行加密与解密。如下:
bob将原始文档通过秘钥加密生成一个密文文档。
alice拿到这个密文文档以后,它可以用这把秘钥还原为原始的明文文档。

对称加密究竟是如何实现的,我们可以以RC4这样一个对称加密序列算法来看一下。
加密:秘钥序列+明文=密文
解密:秘钥序列+密文=明文
在这里插入图片描述

2.2.加密模型-非对称加密

非对称加密:它根据一个数学原理,创建一对秘钥(公钥和私钥)公钥加密,私钥解密;
私钥:私钥自己使用,不对外开放。
公钥:公钥给大家使用,对外开放。
比如:alice有一对公钥和私钥,他可以将公钥发布给任何人。假设Bob是其中一个,当Bob要传递一份加密文档给alice,那么Bob就可以用alice的公钥进行加密,alice收到加密文档后通过自己的私钥进行解密,获取原始文档。

注意:alice必须知道Bob就是Bob,也就是它收到的信息必须是Bob发来的,那么这个信任问题,在多方通讯的过程中,必须有一个公信机构来验收双方的身份,那么这个机构就是CA机构。
在这里插入图片描述

2.3.身份验证机构-CA

通讯双方是如何验证双方的身份?
CA架构是可信任组织架构,主要用来颁发证书及验证证书。那CA机构又是如何申请和颁发证书的呢?

我们首先需要申请证书,需要进行登记,登记我是谁,我是什么组织,我想做什么,到了登记机构在通过CSR发给CA,CA中心通过后,CA中心会生成一对公钥和私钥,那么公钥会在CA证书链中保存,公钥和私钥证书订阅人拿到后,会将其部署的WEB服务器上。
1.当浏览器访问我们的https站点时,它会去请求我们的证书
2.Nginx会将我们的公钥证书回传给浏览器
3.浏览器会去验证我们的证书是否是合法的、是否是有效的
4.CA机构会将过期的证书放置在CRL服务器,那么CRL服务的验证效率是非常差的,所以CA又推出了OCSP响应程序性能还不是很高。
5.Nginx会有一个OCSP的开头,当我们开启后,Nginx会主动上OCSP上查询,这样大量的客户端直接从Nginx获取,证书是否有效。

2.4.HTTPS通讯原理

HTTPS加密过程,HTTPS采用混合加密算法,即对称加密、和非对称加密
通信前准备工作:申请域名对应的证书,并将其部署在Nginx服务器中。
1)第一步客户端向服务端发送Client Hello消息,这个消息里包含了一个客户端生成的随机数Random1、客户端支持的加密套件和客户端支持TLS协议版本等信息
2)服务端会向客户端发送Server Hello消息,返回自己的公钥证书,挑选一个合适的加密套件、另外还会生成一份随机数Random2推送给客户端。至此客户端和服务端都拥有了两个随机数(Random1+Random2)
3)客户端收到服务端传来的公钥证书后,先从CA验证该证书的合法性(CA公钥去解密公钥证书),验证通过后取出证书中的服务端公钥,再生成一个随机数Random3,再用服务端公钥非对称加密Random3.
4)服务端用自己的私钥解出客户端生成的Random3。至此,客户端和服务端都拥有Random1+Random2+Random3,两边根据同样的算法生成一份秘钥,握手结束后的应用层数据都是使用这个秘钥进行对称加密。

3.HTTPS扩展知识

3.1.HTTPS证书类型

在这里插入图片描述

3.2.HTTPS购买建议

保护1个域名 www.wzx.net
保护5个域名 www images cdn test m
通配符域名 *.wzx.net

3.3.HTTPS颜色标识

Https不支持续费,证书到期需要重新申请新并进行替换。
Https不支持三级域名解析,如test.m.wzx.net *.m.wzx.net
Https显示绿色,说明整个网站的url都是https的,并且都是安全的
Https显示黄色,说明网站代码中有部分URL地址是Http不安全协议的
Https显示红色,要么证书是假的,要么证书已经过期

4.HTTPS单台配置实践

4.1.配置SSL语法

#官方示例
worker_processes auto;
http {
    ...
    server {
            listen            443 ssl;
            keepalive_timeout 70;
            ssl_protocols     TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers       AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
            ssl_certificate   /usr/local/nginx/conf/cert.pem;
            ssl_certificate_key /usr/local/nginx/conf/cert.key;
            ssl_session_cache shared:SSL:10m;
            ssl_session_timeout  10m;
            ...
    } 
}

4.1.创建SSL证书

1.创建证书存储目录

[root@nginx1 ~]# mkdir -p /etc/nginx/ssl_key
[root@nginx1 ~]# cd /etc/nginx/ssl_key/

2.使用openssl命令充当CA权威机构创建证书(类似黑户)

[root@nginx1 /etc/nginx/ssl_key]# openssl genrsa -idea -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.................................................................................................................................................................................................+++
.........................+++
e is 65537 (0x10001)
#记住配置密码,我这里是123456
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

3.生成自签证书,同时去掉私钥的密码

[root@nginx1 /etc/nginx/ssl_key]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Generating a 2048 bit RSA private key
..............................................+++
.............+++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:WH
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:hhhh
Organizational Unit Name (eg, section) []:hhhh
Common Name (eg, your name or your server's hostname) []:s.wzx.net
Email Address []:wzx@qq.com
#req  --->用于创建新的证书
#new  --->表示创建的是新证书
#x509 --->表示定义证书的格式为标准格式
#key  --->表示调用的私钥文件信息
#out  --->表示输出证书文件信息
#days --->表示证书的有效期

[root@nginx1 /etc/nginx/ssl_key]# ls
server.crt  server.key

4.1.配置SSL场景

[root@nginx1 /etc/nginx/conf.d]# vim s.wzx.net.conf
server {
        listen 443 ssl;
        server_name s.wzx.net;
        ssl on;
        ssl_certificate /etc/nginx/ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;
        location / {
                root /code4;
                index index.html;
        }
}

准备对应的站点目录,并重启Nginx服务
[root@nginx1 /etc/nginx/conf.d]# mkdir /code4
[root@nginx1 /etc/nginx/conf.d]# echo "https...." >/code4/index.html
[root@nginx1 /etc/nginx/conf.d]# systemctl restart nginx

4.3.访问验证SSL

浏览器输入https://s.wzx.net访问,由于该证书非第三方权威机构颁发,而是我们自己签发的,所以浏览器会警告
在这里插入图片描述

4.4.强制跳转Https

如果用户忘记在浏览器地址栏输入https://协议那么将不会跳转至https站点;
所以建议新增如下配置,将用户访问http请求强制跳转https

[root@nginx1 /etc/nginx/conf.d]# vim s.wzx.net.conf

server {
        listen 443 ssl;
        server_name s.wzx.net;
        ssl on;
        ssl_certificate /etc/nginx/ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;
        location / {
                root /code4;
                index index.html;
        }
}

server {
        listen 80;
        server_name s.wzx.net;
        return 302 https://$server_name$request_uri;
}
[root@nginx1 /etc/nginx/conf.d]# systemctl restart nginx

5.HTTPS集群配置实践

5.1.环境准备

主机名IP主机名
db-nfs192.168.146.176nginx-proxy
nginx2192.168.146.175nginx-web01
nginx1192.168.146.101nginx-web02

5.2.配置应用节点

#配置所有后端节点,监控80端口即可;

[root@nginx1 /etc/nginx/conf.d]# vim s.wzx.net.conf
server {
        listen 80;
        server_name s.wzx.net;
        root /code/wordpress;
        location / {
                index index.html;
        }
}
root@nginx1 /etc/nginx/conf.d]# systemctl restart nginx

5.3.配置负载均衡

1.创建ssl证书

[root@db-nfs ~]# mkdir /etc/nginx/ssl_key -p
[root@db-nfs ~]# cd /etc/nginx/ssl_key/
[root@db-nfs /etc/nginx/ssl_key]# openssl genrsa -idea -out server.key 2048
[root@db-nfs /etc/nginx/ssl_key]# openssl req -days 36500 -x509 -sha256 \
> -nodes -newkey rsa:2048 -keyout server.key -out server.crt

2.nginx负载均衡配置文件如下

[root@db-nfs /etc/nginx/ssl_key]# vim /etc/nginx/conf.d/proxy.conf
upstream site {
        server 192.168.146.101:80 max_fails=2 fail_timeout=10s;
        server 192.168.146.175:80 max_fails=2 fail_timeout=10s;
}
server {
        listen 443;
        server_name s.oldxu.net;
        ssl on;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate ssl_key/server.key;
        location / {
                proxy_pass http://site;
                include proxy_params;
        }
}
server {
        listen 80;
        server_name s.oldxu.net;
        return 302 https://$server_name$request_uri;
}

6.HTTPS场景配置实践

6.1.场景实践-1

模拟银行网站场景
1.用户访问网站主站,使用http协议提供访问。
2.当用户点击登陆时,则网站会跳转至一个新的域名,并使用的是https提供安全访问。
1.主页展示 http://yh.wzx.net(提供网页浏览)
2.模拟登录 http://yh.wzx.net/login (相当于点击了登录的按钮)
3.登录页面 http://star.oldxu.net (提供安全登录)

1.配置http://star.wzx.net

[root@nginx1 ~]# vim /etc/nginx/conf.d/star.wzx.net.conf
server {
        listen 443 ssl;
        server_name star.wzx.net;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate_key ssl_key/server.key;

        root /code/login;
        location / {
                index index.html;
        }
}
[root@nginx1 ~]# mkdir /code/login
[root@nginx1 /code/login]# echo "login......." > index.html

[root@nginx1 /code/login]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nginx1 /code/login]# systemctl restart nginx

2.配置http://yh.wzx.net(主页页面)

[root@nginx2 ~]# vim /etc/nginx/conf.d/yh.wzx.net.conf
server {
        listen 80;
        server_name yh.wzx.net;
        root /code;
        location / {
                index index.html;
        }
        location /login {
                return 302 https://star.wzx.net;
        }
}
[root@nginx2 ~]# mkdir /code
[root@nginx2 ~]# echo "yh" >/code/index.html
[root@nginx2 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nginx2 ~]# systemctl restart nginx

6.2.场景实践-2

需求:希望用户访问网站的所有url走https协议,但访问s.wzx.net/abc时走http协议

[root@db-nfs /etc/nginx/conf.d]# cat proxy_agent.wzx.net.conf
upstream webs {
        server 192.168.146.101:80;
        server 192.168.146.175:80;
}
server {
        listen 443 ssl;
        ssl_certificate ssl_key/server.crt;
        ssl_certificate ssl_key/server.key;


        server_name agent.wzx.net;
        location / {
                proxy_pass http://webs;
                include proxy_params;
        }
}

server {
        listen 80;
        server_name agent.wzx.net;
        if ($request_uri !~* "^/abc") {
                return 302 https://$http_host$request_uri;
        }
        location / {
                proxy_pass http://webs;
                include proxy_params;
        }
}

7.HTTPS优化配置实践

7.1.优化基本概述

SSL的运行计算需要消耗额外的CPU资源,SSL通讯过程中【握手】阶段的运算最占用CPU资源,有如下几个方面可以进行调整与优化。
1.设置worker进程数设置为等于CPU处理器的核心数。worker_processes auto
2.启用keepalive长连接,一个连接发送更多个请求
3.启动shared回话缓存,所有worker工作进程之间共享的缓存,避免进行多次SSL【握手】
4.禁用builtin内置于的缓存,仅能供一个worker工作进程使用,使用shared缓存即禁止builtin

7.2.优化配置实例

worker_processes auto;

http {
    ...
    server {
        listen 443 ssl;
        server_name www.example.com;
        ssl_certificate www.example.com.crt;
        ssl_certificate_key www.example.com.key;
        ssl_protocols TLSv1.2;
        ssl_prefer_server_ciphers on;
        #Nginx决定使用哪些协议与浏览器进行通讯
        
        keepalived_timeout 70;
        #设置长连接
        #默认不开启session_cache: a握手后,关闭浏览器,再次访问,需要重新握手;
        #建立握手后如果连接断开,在session_timeout时间内再次连接,无需再次建立握手,可直接复用之间缓存的连接
        
        ssl_session_cache shared:SSL:10m;
        #1M缓存空间能存储4000个会话数量;
        ssl_session_timeout 1440m;
        #配置会话超时时间(默认5分钟)
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SCTF2023复现(部分web复现)

文章目录 SCTF2023复现webezcheck1nSycServerpypyp? SCTF2023复现 web ezcheck1n find the way to flag.Looks like there are two containers with an evil P in the configuration file of the frontend server 源码&#xff1a; <?php$FLAG "flag{fake_flag}&…

华为OD机试真题 Python 实现【分奖金】【2022Q4 100分】

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 公司老板做了一笔大生意&#xff0c;想要给每位员工分配一些奖金&#xff0c;想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序&#xff0c;每个…

《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

iview button组件点击第一次无效的原因解决

最近在开发页面&#xff0c;发现登陆页老是需要点击两下才能进入具体页面&#xff0c;一开始没在意&#xff0c;但是使用久了&#xff0c;就感觉肯定是问题&#xff0c;于是仔细查看了代码&#xff0c;如上图所示&#xff1a; 一开始我的跳转是放在存储token的上面的&#xff0…

管理类联考——英语——趣味篇——词根词汇——按“认识自然、认识自我、改造自然、情感智力、人与社会”分类”

文章目录 前言第⼀部分、认识⾃然1&#xff0e; ⾃然源于⽣命-bio-“⽣命&#xff0c;⽣物”-nat-“⽣命&#xff0c;出⽣”-gen-&#xff0c;-geo- “⽣&#xff0c;出⽣&#xff0c;⽣发;⼟地”-viv- -vit-, “⽣&#xff0c;⽣命&#xff0c;出⽣”-mort- “死&#xff0c;死…

如何使用企业门户(门户,Portal)平台构建千人千面的企业数字神经网络、门户工作台,集团数字化门户系统?

基于人工智能与AI算法的信创门户“One”&#xff0c;打破了IT系统间信息孤岛。实现了系统间的互联互通&#xff08;数字孪生&#xff0c;塔尖通信&#xff09;&#xff0c;结合机器学习&#xff0c;打造企业数字神经网络&#xff0c;给用户一个千人千面的智慧门户工作台&#x…

【Python】一文带你学会数据结构中的堆、栈

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

移除所有本地应用程序(数据库)加密设置

大家好&#xff0c;才是真的好。 最近我就有这样一个烦恼&#xff0c;要移除Notes本地的所有本地应用程序&#xff08;数据库&#xff09;的加密设置&#xff0c;这样就可以放到Domino服务器上&#xff0c;然后支持其他电脑上不同的Notes访问。毕竟&#xff0c;默认地&#xf…

Open-World Class Discovery with Kernel Networks (ICDM 2020)

Open-World Class Discovery with Kernel Networks (ICDM 2020) 摘要 我们研究了一个开放世界类发现问题&#xff0c;在这个问题中&#xff0c;训练样本是来自旧类有标签的样本&#xff0c;而我们从没有标记的测试样本中发现新的类。解决这一范式有两个关键的挑战:(a)将知识从…

【ESP-IDF】在squareline studio上设计GUI并移植到esp-box上

因为squareline studio软件中适配了ESP-BOX&#xff0c;所以作者本想直接使用该软件创建的工程&#xff0c;但是会出现花屏的现象&#xff0c;也不知道是不是没有做好esp-box-lite的适配。 因此只能先用squareline studio设计好GUI&#xff0c;然后再导出其代码&#xff0c;在其…

实时数仓详解

前言 本文隶属于专栏《大数据理论体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据理论体系 背景 伴随着社会的发展&#xff0c;用户对数据仓库…

ChatGPT中 top_p 和 temperature 的作用机制

1. temperature 的作用机制 GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实&#xff08;更接近训练数据&#xff09;…

pycharm快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 &#x1f381;更多干货 完整版文档下载方式&#xff1a; 1、代码编辑快捷键 CTRL ALT SP…

Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信

前情回顾&#xff1a; vue-element-admin项目学习笔记&#xff08;1&#xff09;安装、配置、启动项目 vue-element-admin项目学习笔记&#xff08;2&#xff09;main.js 文件分析 vue-element-admin项目学习笔记&#xff08;3&#xff09;路由分析一:静态路由 vue-element-adm…

TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING

本文也是属于LLM系列的文章&#xff0c;针对《TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING》的翻译。 关于参数有效迁移学习的统一观点 摘要1 引言2 前言2.1 Transformer结构综述2.2 之前的参数高效调优方法综述 3 弥合差距-统一的视角3.1 仔细观察Pref…

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 2023年是汽车行业挑战加剧的一年&#xff0c;在这样一个变革时期&#xff0c;多家车企都在进行创新技术和战略调整&#xff0c;实现灵活的科学决策&#xff0c;在发…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境&#xff0c;它基于JS解析器的同时&#xff0c;增加了许多环境相关的内容&#xff0c;用一张图表示各个运行环境和JS解析器的关系如下&#xff1a; 我们把常见的&#xff0c;能够用JS这门语言控制的内容称为一个JS的运行环境&#xff0c;常见的运行环…

PDF怎么在线编辑?PDF编辑软件推荐!​

PDF怎么在线编辑&#xff1f;PDF是一种常见的文档格式&#xff0c;用于存储和共享各种类型的文档&#xff0c;如电子书、报告、表格、合同和演示文稿等。然而&#xff0c;PDF文档通常是只读的&#xff0c;无法直接进行编辑。在过去&#xff0c;要编辑PDF文档通常需要购买专业的…

JVM 常量池、即时编译与解析器、逃逸分析

一、常量池 1.1、常量池使用 的数据结构 常量池底层使用HashTable key 是字符串和长度生成的hashValue&#xff0c;然后再hash生成index, 改index就是key&#xff1b;Value是一个HashTableEntry&#xff1b; 1、key hashValue hash string(name&#xff0c; len) i…

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战全网唯一

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战演练 一、事故描述 生产环境clickhouse宕机&#xff0c;重启之后&#xff0c;反复重启&#xff0c;重启几秒钟又死了。甲方客户叫天&#xff0c;大老板火冒三丈&#xff0c;天下大乱。老板电话打过来&#xff0c;要求半…