返回列表 发布新帖
查看: 32|回复: 0

哪吒监控 V1 使用唯一域名开启 CDN 和反向代理配置教程

灌水成绩
133
6
1081
主题
回帖
积分

等级头衔
U I D : 8
等级 : Lv.13

积分成就
贡献 : 435
金钱 : 12495
在线时间 : 34 小时
注册时间 : 2024-11-24
最后登录 : 2025-1-31

荣誉勋章

2024万圣节纪念币杰出贡献纪念币种子用户纪念币2024龙年纪念币2025蛇年纪念币

发表于 2025-1-15 17:26:26 | 查看全部 |阅读模式
哪吒监控 V1 版本相比于 V0 版本有一个重要更新,那就是从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,访问与通信均通过默认的 8008 端口。
如此一来,我们就可以只需要一个域名在 Cloudflare 开启 CDN (打开小黄云)并配置反向代理,使面板和 agent 通信都使用同一个域名并且开启 TLS。


Cloudflare 配置
在旧版中如果我们需要使监控面板开启 CDN,必须准备两个域名,一个配置好 CDN,用作公开访问,CDN 需支持 WebSocket 协议;另一个域名不使用 CDN,用作 Agent 与 Dashboard 的通信。比如 dashboard.demo.com 和 agent.demo.com。
在新版 V1 版本中,我们可以仅使用一个域名开启 CDN,访问与通信均通过一个域名来完成,此处以 dashboard.demo.com 为例。


1.在 Cloudflare 的 DNS 记录里添加 dashboard.demo.com 的 A 记录,指向你的面板主控 VPS 地址,并开启小黄云 (开启 CDN)。
2.在设置——网络里面打开 WebSockets 和 gRPC 开关。

3.Cloudflare 设置选项里面 SSL/TLS 加密 模式选择 完全。


安装哪吒监控 V1
官方文档地址:https://nezha.wiki/guide/dashboard.html


安装 Dashboard
  1. curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
复制代码
中国大陆服务器使用镜像
  1. curl -L https://gitee.com/naibahq/scripts/raw/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
复制代码
以 Docker 安装为例,安装过程按提示输入以下信息:
1.请输入站点标题: - 自定义你的站点标题(自行设置)。
2.请输入暴露端口: - 公开访问端口(可直接默认 8008,或自行设置其它端口)。
3.请指定安装命令中预设的 nezha-agent 连接地址: - Agent对接地址【域名/IP:端口】(此处设置为 dashboard.demo.com:443)。
4.是否希望通过 TLS 连接 agent : Agent 通信使用 TLS 连接(选 y)。
5.请指定后台语言: - 选择语言偏好。
输入完成后,等待拉取 Docker 镜像。安装结束后,如果一切正常,你可以通过域名和端口号访问 Dashboard,例如:
  1. http://dashboard.demo.com:8008
复制代码
如果需要再次运行安装脚本,可输入以下命令:
  1. ./nezha.sh
复制代码
登录到 Dashboard 配置界面
后台管理界面的路径为 /dashboard,你只需访问:
  1. http://dashboard.demo.com:8008/dashboard
复制代码
首次登录的默认用户名和密码均为 admin。建议登录后立即进入管理页面点击头像 —— 个人信息 —— 更新个人资料修改用户名和密码。
1Panel 下的反向代理配置(推荐 1Panel,宝塔面板未测试,理论上配置无差别)
从 V1 版本开始,不再区分 Dashboard 和 gRPC 端口,访问与通信均通过默认的 8008 端口。

以我正在使用的 1Panel 为例,在 1Panel 网站 —— 创建站点 —— 反向代理,填写你的公开访问域名,如 dashboard.demo.com,代理地址填写 http://127.0.0.1:8008 并确认保存。

打开刚创建的网站右边的 配置 —— HTTPS 配置你的证书文件(可以直接 1Panel 下 Acme 账户在线申请证书也可以使用 Cloudflare 的 15 年源服务器证书。)然后启用 HTTPS。

打开配置文件菜单,在最后面填上以下代码,然后点保存并重载:
  1. underscores_in_headers on;
  2. set_real_ip_from 0.0.0.0/0;
  3. real_ip_header CF-Connecting-IP;

  4. upstream dashboard {
  5.     keepalive 512;
  6.     server 127.0.0.1:8008;
  7. }
复制代码
打开反向代理 —— 源文,将里面的内容全选删除,并替换为以下代码,然后点确认:
  1. location ^~ / {
  2.     proxy_pass http://127.0.0.1:8008;
  3.     proxy_set_header Host $host;
  4.     proxy_set_header X-Real-IP $remote_addr;
  5.     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  6.     proxy_set_header REMOTE-HOST $remote_addr;
  7.     proxy_set_header Upgrade $http_upgrade;
  8.     proxy_set_header nz-realip $http_cf_connecting_ip;
  9.     proxy_set_header Connection "upgrade";
  10.     proxy_set_header X-Forwarded-Proto $scheme;
  11.     proxy_http_version 1.1;
  12.     proxy_read_timeout 1800s;
  13.     proxy_send_timeout 1800s;
  14.     proxy_buffer_size 128k;
  15.     proxy_buffers 4 128k;
  16.     proxy_busy_buffers_size 256k;
  17.     proxy_max_temp_file_size 0;
  18.     add_header X-Cache $upstream_cache_status;
  19.     add_header Cache-Control no-cache;
  20.     proxy_ssl_server_name on;
  21.     add_header Strict-Transport-Security "max-age=31536000";
  22. }

  23. # gRPC 服务
  24. location ^~ /proto.NezhaService/ {
  25.     grpc_set_header Host $host;
  26.     grpc_set_header nz-realip $http_CF_Connecting_IP;
  27.     grpc_read_timeout 600s;
  28.     grpc_send_timeout 600s;
  29.     grpc_socket_keepalive on;
  30.     client_max_body_size 10m;
  31.     grpc_buffer_size 4m;
  32.     grpc_pass grpc://dashboard;
  33. }

  34. # WebSocket 服务
  35. location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {
  36.     proxy_set_header Host $host;
  37.     proxy_set_header nz-realip $http_cf_connecting_ip;
  38.     proxy_set_header Origin https://$host;
  39.     proxy_set_header Upgrade $http_upgrade;
  40.     proxy_set_header Connection "upgrade";
  41.     proxy_read_timeout 1800s;
  42.     proxy_send_timeout 1800s;
  43.     proxy_pass http://127.0.0.1:8008;
  44. }
复制代码
至此,所有配置完成,你可以直接访问 dashboard.demo.com 来打开面板,进入后台点击服务器 —— 安装命令 —— Linux 复制 agent 命令开始添加你的受控小鸡了。

注意
因为面板和 agent 都开启了 CF CDN,我们需要在面板系统设置里面的真实IP请求头填写 CF-Connecting-IP,后台的登录 IP 以及其它地方才能正常显示真实 IP。

温馨提示:本网站所展示的内容均由注册会员自行发布,这些内容仅代表作者本人的观点和立场,并不代表本网站的官方立场或意见。我们致力于打造一个开放的社区平台,鼓励用户自由表达和分享信息。然而,我们也明确声明,对于用户发布的内容,我们不承担任何法律责任。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

服务支持

社区监狱 封禁类型
投诉/建议联系

fankui@shequla.com

未经授权禁止转载,复制和建立镜像
如有违反,追究法律责任
  • 微信公众号
  • 哔哩哔哩
Copyright © 2001-2025 社区啦 - 小众的中文社区 版权所有 All Rights Reserved. |网站地图 冀ICP备2022019298号
关灯 在本版发帖
手机扫一扫访问
官方Q群返回顶部
快速回复 返回顶部 返回列表