Skip to content

Agent端提示:上报信息失败 error reading server preface: http2: frame too large #183

Description

@ixiongmao

运行环境

OpenCloudOS 9.2 x86_64

Agent 版本

1.10.0

描述问题

NEZHA@2025-04-10 11:21:24>> 上报系统信息失败: rpc error: code = Unavailable desc = connection error: desc = "error reading server preface: http2: frame too large
NEZHA@2025-04-10 11:21:34>> Try to reconnect ...
NEZHA@2025-04-10 11:21:34>> Connection to xxx:6901 established

复现步骤

proxy_cache_path /www/dk_project/sites/nezha/proxy_cache_dir levels=1:2 keys_zone=nezha_apiwl_com_cache:20m inactive=1d max_size=5g;

upstream nezha-dashboard {
server 127.0.0.1:8008;
keepalive 512;
}

server {
listen 80;
listen 6901;

listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name nezha;
index index.php index.html index.htm default.php default.htm default.html;
root /www/dk_project/wwwroot/nezha;


#CERT-APPLY-CHECK--START
# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除
include /www/server/panel/vhost/nginx/well-known/nezha.conf;
#CERT-APPLY-CHECK--END

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate    /www/server/panel/vhost/cert/nezha/fullchain.pem;
ssl_certificate_key    /www/server/panel/vhost/cert/nezha/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_tickets on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497  https://$host$request_uri;

#SSL-END
#REDIRECT START


#REDIRECT END

#ERROR-PAGE-START  错误页配置,可以注释、删除或修改
error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START  PHP引用配置,可以注释或修改


#PHP-INFO-END

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效

#REWRITE-END

#IP-RESTRICT-START 限制访问ip的配置,IP黑白名单

#IP-RESTRICT-END

#BASICAUTH START

#BASICAUTH END

#SUB_FILTER START

#SUB_FILTER END

#GZIP START

#GZIP END

#GLOBAL-CACHE START

#GLOBAL-CACHE END

#WEBSOCKET-SUPPORT START
proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
#WEBSOCKET-SUPPORT END

#PROXY-CONF-START
location ^~ / {
  
  
  proxy_pass http://127.0.0.1:8008;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Real-Port $remote_port;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Port $server_port;
  proxy_set_header REMOTE-HOST $remote_addr;
  
  
  proxy_connect_timeout 60s;
  proxy_send_timeout 3600s;
  proxy_read_timeout 3600s;
  proxy_buffer_size 128k;
  proxy_buffers 4 256k;
  proxy_busy_buffers_size 256k;
  proxy_max_temp_file_size 0;
  proxy_temp_file_write_size 256k;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
  
  
  
  
  
}
#PROXY-CONF-END

#SERVER-BLOCK START
# grpc 相关    
location ^~ /proto.NezhaService/ {
    grpc_set_header Host $host;
    # grpc_set_header nz-realip $remote_addr; # 如果你使用nginx作为最外层,就把上面一行注释掉,启用此行
    grpc_read_timeout 600s;
    grpc_send_timeout 600s;
    grpc_socket_keepalive on;
    client_max_body_size 10m;
    client_body_buffer_size 10m;
    grpc_buffer_size 4m;
    grpc_pass grpc://nezha-dashboard;
}
# websocket 相关
location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {
    proxy_set_header Host $host;
    # proxy_set_header nz-realip $remote_addr; # 如果你使用nginx作为最外层,就把上面一行注释掉,启用此行
    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;
}
#SERVER-BLOCK END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
    return 404;
}

#一键申请SSL证书验证目录相关设置
location /.well-known{
    allow all;
}

#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
    return 403;
}

#LOG START

access_log /www/wwwlogs/nezha.log;
error_log /www/wwwlogs/nezha.error.log;
#Monitor-Config-Start 网站监控报表日志发送配置
access_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=dp6__access monitor;
error_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=dp6__error;
#Monitor-Config-End
#LOG END

#Monitor-Config-Start 网站监控报表日志发送配置
access_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=6__access monitor;
error_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=6__error;
#Monitor-Config-End

}

附加信息

Details

验证

  • 我确认这是一个 nezha-agent 的问题。
  • 我已经搜索了 Issues,并确认该问题之前没有被反馈过。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions