如何才能使哪吒探针全站使用CloudFlare的CDN,来隐藏源ip?

哪吒(nezha)探针: 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,计划任务和在线终端。

写在前面

相关简单说明

  • CF: Cloudflare
  • 面板根域名: 哪吒面板所使用的域名,如:abc.com
  • 面板域名: 访问哪吒面板时的域名,如:status.abc.com
  • agent域名: Agent与面板通信的域名,如:agent.abc.com
  • OAuth验证方式: 博主选择的是github。gitee应该也差不多吧

1.全站使用CF CDN

首先去Cloudflare官网添加站点, 作为面板根域名,并添加面板域名agent域名两个相关解析记录,要注意的是,必须点亮橙云(默认是开着的,即使用CF的cdn),具体的这里不详细展开。

1.1 使用15年免费证书

如果采用免费的Let's Encrypt、BuyPass、ZeroSSL等,它们一般都是90天, 180天, 最长也不过是一年而已。

既然是套用CF的cdn, 那干嘛不选用他们提供的15年免费证书呢? 支持泛域名, 简单又好用~是吧。

选择面板根域名, 选择" SSL/TLS" , 选择 "概述" , 右边选择 "完全" 或者 "完全(严格)" 都可以。

选择 "边缘证书" ,将 "始终使用 HTTPS", "HTTP 严格传输安全 (HSTS), "随机加密", "自动 HTTPS 重写" 的开关全部关闭。

再选择 "源服务器", 点击 "创建证书" , 其它的默认, 证书有效期选择 "15" 年, 下方创建即可。

接着创建name.pem文件和name.key文件(name随意, 非中文即可)。

  • name.pem文件内容为 "源证书(Origin Certificate)" 框里的全部内容。
  • name.key文件内容为 "私钥(Private Key)" 框里的全部内容。
以上两个文件保存好之后, 上传到服务器里。或者一开始就在服务器里的对应路径创建、编辑并写入保存,反正怎么开心怎么来了。

比如lnmp1.8环境下, 由于我使用的是openresty ,故直接创建 /usr/local/openresty/nginx/conf/ssl/domain 文件夹 (如果是nginx, 应该是/usr/local/nginx/conf/ssl/domain ,当然这只是个规范的路径, 其实你存哪里都可以, 只要有足够的读取权限), 末尾的domain可以修改为面板根域名(方便管理)或者其它容易识别的名字,然后把上面保存的name.pem/name.key两个文件上传到该文件夹下, 后面步骤需要用到。

1.2 开启gRPC

选择面板根域名。打开 "网络" 选项将 gRPC 的开关 打开。

2.创建站点

未添加 "面板域名" 站点的情况下,首先需要添加 面板域名 站点。

lnmp下直接使用lnmp vhost add 按提示填写 面板域名, 可以直接一路回车到是否启用ssl那一项, 选择y就行。接着选择 1 使用自己的证书, 路径就看你一开始上传或者保存到哪里的。

  • 第一个文件路径选择.pem的完整路径
  • 第二个文件路径选择.pey的完整路径

填自己的实际路径, 最后回车确认就行了。

若是已添加了 "面板域名" 站点, 那么直接 lnmp ssl add , 按提示输入相关信息, 直到ssl那一项按照上面的来处理即可。

同样的, agent域名站点 也是这么处理, 按照上面的内容自己再重复操作一遍就行

2.1 配置面板站点文件

直接编辑面板域名站点配置文件, 配置相关反向代理。最后的内容参考如下

本内容需要登录后查看

2.2 配置agent域名站点文件

直接编辑agent域名站点配置文件,配置grpc反向代理, 最后的内容参考如下:

本内容需要登录后查看
然后?使用 nginx -s reload 命令重载下配置文件,没有错误就可以。

3.部署哪吒面板

这里就简单记录下哪吒探针的相关部署。如果是全新安装,直接按脚本提示选择“安装面板”。

如果是已经安装,那就选择脚本里的“修改面板配置”,其实和全新安装是一个意思,也是让你重新部署一遍,只不过原有的数据还在(已添加的受控端、推送等)。

无论是全新安装还是已安装修改面板配置文件,步骤都是一样的。部署过程中 OAuth验证方式、Client ID、Client Secret、GitHub/Gitee登录名、站点标题 这些都按照你自己的需求去填写。

OAuth验证将“Authorization callback URL”设置为 https://面板域名/oauth2/callback 

至于 面板端口agent端口 详见下方“选择端口”。

3.1 选择端口

本内容需要登录后查看

3.2 配置agent域名

部署完面板之后, 直接访问 https://面板域名 , 登录之后切到 "管理后台" —— "设置", 将agent域名填写到"未接入CDN的面板服务器域名/IP"里, 下方保存。之后编辑 /opt/nezha/dashboard/data/config.yaml 配置文件

  • 将 proxygrpcport 的值修改为 443 (proxygrpcport: 443)
  • tls 的值更改为true (tls: true)
保存完重新执行哪吒脚本来重启面板。

碎碎念

当所有一切配置完成后,使用面板域名访问却发现css不能正常加载,而用 http://面板ip:面板端口却是正常的?重启哪吒面板依然无效?

本内容需要登录后查看

遇到的坑

访问面板域名,所有东西都加载正确,也提示“实时通道建立”,但它就是“离线状态”???

本内容需要登录后查看

nezha cloudfalreCDN

阅读剩余
THE END