记录一次使用 1panel 部署 nezha 监控

记录一次使用 1panel 部署 nezha 监控

STEP.1

准备一个域名 eg: nezha.com, 准备一个 CloudFlare账号, 把域名解析到服务器IP, 点击CloudFlare左侧网络, 把 gRPC, WebSockets开启, 并开启小黄云.

STEP.2

确保服务器安装好了 docker, 创建一个文件夹, 之后创建一个 docker-compose.yml文件.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
version: '3'
services:
  dashboard:
    image: ghcr.io/nezhahq/nezha
    container_name: nezha
    ports:
      - 8008:8008
    volumes:
      - ./data:/dashboard/data
    restart: always

之后在当前文件夹下直接输入:

1
docker-compose up -d

要确保 8008 防火墙端口是开放的.

STEP.3

登录上 1panel, 点击 网站, 点击 创建, 点击 反向代理, 主域名填写 nezha.com, 代理地址填写 127.0.0.1:8008, 创建完成之后我们去申请一个证书并应用. 之后我们点击刚刚创建的网站, 点击网站设置的 配置文件, 在 server { 上方我们添加如下代码, 并重载:

1
2
3
4
upstream dashboard {
    keepalive 512; 
    server 127.0.0.1:8008; 
}

之后我们点击反向代理右侧的 源文, 把里面的代码替换为如下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
location ^~ / {
    proxy_pass http://127.0.0.1:8008; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header nz-realip $http_cf_connecting_ip;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1; 
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_buffer_size 128k;
    proxy_buffers 4 128k; 
    proxy_busy_buffers_size 256k;
    proxy_max_temp_file_size 0;
    add_header X-Cache $upstream_cache_status; 
    add_header Cache-Control no-cache; 
    proxy_ssl_server_name off; 
    proxy_ssl_name $proxy_host; 
    add_header Strict-Transport-Security "max-age=31536000"; 
}
underscores_in_headers on;
set_real_ip_from 0.0.0.0/0; # CDN 回源 IP 地址段
real_ip_header CF-Connecting-IP; # CDN 私有 header,此处为 CloudFlare 默认
# gRPC 服务
location ^~ /proto.NezhaService/ {
    grpc_set_header Host $host;
    grpc_set_header nz-realip $http_CF_Connecting_IP; 
    grpc_read_timeout 600s;
    grpc_send_timeout 600s;
    grpc_socket_keepalive on;
    client_max_body_size 10m;
    grpc_buffer_size 4m;
    grpc_pass grpc://dashboard;
}

# WebSocket 服务
location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {
    proxy_set_header Host $host;
    proxy_set_header nz-realip $http_cf_connecting_ip; 
    proxy_set_header Origin https://$host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_pass http://127.0.0.1:8008;
}

之后我们进入 nezha.com, 进入后台, 用户名密码为默认的 admin, 必须自行修改为强密码, 再点击右上角头像 系统设置, 在 Agent对接地址【域名/IP:端口】 栏填入 nezha.com:443, 并勾选 Agent 使用 TLS 连接, 之后我们就可以直接复制 安装命令 去我们想要监控的服务器里安装 Agent了.

updatedupdated2025-09-082025-09-08