跳转到主要内容

自定义 HTTP 隧道的 404 页面

重新构建 NPS,为 HTTP 隧道替换后端连接失败时的全局 404 页面

HTTP 隧道已经匹配域名规则,但客户端不可用、流量超限或目标连接失败时,会以 404 Not Found 返回内置错误页。自定义模板位于项目目录:

web/static/page/error.html

自定义方法

该模板会编译进 NPS 二进制。修改已安装程序运行目录中的同名文件不会生效,必须在项目中修改模板后重新构建并替换 NPS:

go build -o nps ./cmd/nps

然后重启 NPS。建议保持页面为自包含 HTML,例如:

<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>服务暂不可用</title>
  </head>
  <body>
    <h1>服务暂不可用</h1>
    <p>请稍后重试。</p>
  </body>
</html>

注意事项

  • 错误页是全局资源,所有 HTTP 隧道共用,不能按域名单独设置。
  • 不要依赖相对路径 CSS、图片或脚本;这些请求仍需经过域名路由,故障时可能同样不可用。
  • 不要在页面中暴露内网地址、客户端验证密钥或具体堆栈信息。
  • 未匹配到域名规则的请求不保证返回该模板;应由前置反向代理提供默认站点或兜底响应。
  • HTTPS 入口目前不能可靠返回这份自定义正文;TLS 透传失败时通常只能关闭连接。

部署后使用一个存在的 HTTP 域名规则,临时停止其 NPC 或填写不可达目标,确认状态码、正文和字符集符合前端监控预期。