logologo
开始
教程
手册
开发
插件
API
首页
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
开始
教程
手册
开发
插件
API
首页
logologo

V2 教程(IT 工单系统)

教程简介
第 1 章:认识 NocoBase — 5 分钟跑起来
第 2 章:数据建模 — 两张表搞定工单系统
第 3 章:搭建页面 — 从空白到可用
第 4 章:表单与详情 — 录入、展示、一步到位
第 5 章:用户与权限 — 谁能看什么
第 6 章:工作流 — 让系统自动干活
第 7 章:仪表盘 — 一眼看全局

V1 教程(旧版)

任务管理系统概览
第 1 章:初识 NocoBase
第 2 章:设计任务管理系统
第 3 章:任务数据管理
第 4 章:任务与评论插件
第 5 章:标签页与动态区块
第 6 章:用户与权限
第 7 章:工作流
项目管理平台概览
第 8 章:知识库 - 树表
第 9 章:任务看板与图表
第 10 章:看板筛选与条件
第 11 章:子任务与工时计算
第 12 章:会议室预订与工作流
实现用户注册审核
实现 CRM 线索转化
Markdown 区块技巧
CRM 销售云功能概览
线索跟进与状态管理
CRM 销售云系统
使用 API Keys 获取数据
Markdown 模板变量用法
如何更快部署 NocoBase
CRM 销售管道可视化
CRM Demo 部署指南
Previous PageMarkdown 模板变量用法
Next PageCRM 销售管道可视化

#如何更快部署 NocoBase

很多朋友在部署 NocoBase 时可能会觉得访问速度不够理想。这通常是由于网络环境、服务器配置或部署架构的影响所致。在开始介绍优化技巧前,我先展示一下正常配置下的 NocoBase 访问速度参考,避免不必要的担忧。

#NocoBase 正常加载速度参考

以下是在 NocoBase demo 环境中测试的加载速度:

  • 输入网址、首次进入应用所需时间约为 2 秒
  • 在应用内切换页面所需时间约为 50-300 毫秒

接下来,我将分享一系列简单但高效的部署优化技巧,这些方法无需修改代码,只需调整部署设置,就能显著提升访问速度:

#I. 网络和基础设施优化

#1. HTTP 协议版本:轻松拥抱 HTTP/2

【前提条件】

  • 需要 HTTPS 支持:这点很重要!几乎所有现代浏览器都只在 HTTPS 连接上支持 HTTP/2,所以您必须先配置好 SSL 证书。
  • 服务器要求:您需要使用支持 HTTP/2 的服务器软件,比如 Nginx 1.9.5+ 或 Apache 2.4.17+。
  • TLS 版本:建议使用 TLS 1.2 或更高版本(TLS 1.3 最佳),老旧的 SSL 版本不支持 HTTP/2。

【提示】

传统的 HTTP/1.1 协议在处理多个请求时会有限制——通常只能同时处理 6-8 个连接,这就像排队买票一样,容易造成延迟。 250409http1

HTTP/2 采用了"多路复用"技术,可以同时处理多个请求,大大加速了资源加载;而最新的 HTTP/3 在不稳定网络中表现更佳,效果也很棒。

250409http2

【优化建议】

  • 请确保您的 Web 服务器已经开启了 HTTP/2 支持,现在大多数服务器(如 Nginx、Caddy)都很容易配置。
  • 在 Nginx 中,只需要在监听指令后加入 http2 参数即可:
listen 443 ssl http2;

【验证】

浏览器开发者面板,打开"网络"选项,鼠标右键勾选"协议",即可看到当前连接的协议版本: 20250407145442

经过我们实测,整体速度提升约10%,在系统中大量区块和资源的情况下,性能提升更明显。

#2. 网络带宽:更大更好,灵活计费

【提示】

就像高速公路会比低速公路更顺畅一样,带宽决定了数据传输的效率。当 NocoBase 首次加载时需要下载大量前端资源,如果带宽不足,就容易形成瓶颈。

【优化建议】

  • 选择足够的带宽(大量用户使用的话,推荐50M以上),不要吝啬这一关键资源。
  • 推荐采用"按流量计费"的方式:很多云服务商都提供这种灵活模式,在高峰期您可以享受更高的带宽,而平时也能控制成本。

#3. 网络延迟与服务器地理位置:距离近,反应快

【提示】

延迟其实就是数据传输的等待时间。即便带宽充足,如果服务器离用户太远(比如用户在中国,而服务器在美国),每次请求响应都可能因为距离遥远而拖慢速度。

【优化建议】

  • 尽量把 NocoBase 部署在离您主要用户群体更近的地区。
  • 如果您的用户遍布全球,可以考虑使用全球加速服务(例如阿里云全球加速或 AWS Global Accelerator),优化网络路由,降低延迟。

【验证】

通过ping命令,测试不同地区服务器的延迟。 这个方式提升最为明显,根据不同地区,访问速度提升1-3倍以上。 跨12个时区,13秒: 20250409130618

跨2个时区,8秒: 20250409131039

当前地区,约3秒: 20250409130928

#II. 部署架构优化

#4. 服务端部署与代理方式:选择最适合的架构

【前提条件】

  • 服务器权限:您需要有服务器的 root 或 sudo 权限才能配置 Nginx 等服务。
  • 基本技能:需要一些基础的服务器配置知识,不过别担心,这里会提供具体的配置示例。
  • 端口访问:确保防火墙允许 80 端口(HTTP)和 443 端口(HTTPS)的访问。

【提示】

当用户访问 NocoBase 时,请求会直接到达您的服务器。合适的部署方式能让服务器更高效地处理请求,从而提供更快的响应。

【不同方案及建议】

启动 NocoBase 后,不使用反向代理静态资源(不推荐):

  • 缺点:这种方式虽然简单,但在处理高并发或静态文件时性能较弱,适合开发和测试;
  • 建议:请尽量避免此方式。

参考"安装文档"

不使用反向代理,首页加载约为6.1秒 20250409131357

使用 Nginx / Caddy 等反向代理(强烈推荐):

  • 优点:反向代理服务器能够高效处理并发连接、服务静态文件、实现负载均衡,并且配置 HTTP/2 也很简单;
  • 建议:在生产环境中,应用部署完成之后(源码部署 / create-nocobase-app / Docker 镜像),使用 Nginx 或 Caddy 作为反向代理。

参考"部署文档"

使用Nginx代理后,首页加载约为3-4秒 20250409131541

20250407192453

使用集群部署与负载均衡(适合高并发及高可用场景):

  • 优点:通过部署多个实例处理请求,可以显著提升系统的整体稳定性和并发能力;
  • 具体部署方式见 集群模式

#5. 使用 CDN 加速静态资源

【前提条件】

  • 域名要求:您需要有一个已注册的域名,并且能够管理其 DNS 设置。
  • SSL 证书:大多数 CDN 服务需要配置 SSL 证书(可以使用免费的 Let's Encrypt)。
  • 服务选择:根据用户地区选择合适的 CDN 服务商(中国大陆用户需要选择有 ICP 备案的 CDN)。

【提示】

CDN(内容分发网络)将您的静态资源缓存到全球各地的节点,用户可以从最近的节点获取资源,就像就近取水一样,能极大降低加载延迟。

此外,CDN 最大的优势在于能够显著减轻应用服务器的负载和带宽压力。当大量用户同时访问 NocoBase 时,如果没有 CDN,所有的静态资源请求(如 JavaScript、CSS、图片等)都将直接访问您的服务器,可能导致服务器带宽不足、性能下降,甚至宕机。通过 CDN 分流这些请求,您的服务器可以专注于处理核心业务逻辑,为用户提供更稳定的体验。

202504071845_cdn

【优化建议】• 配置您的服务器,让静态资源请求通过 CDN 分发;• 根据用户所在地选择合适的 CDN 服务商:

  • 全球用户:Cloudflare、Akamai、AWS CloudFront;
  • 中国大陆用户:阿里云 CDN、腾讯云 CDN、百度云加速。示例配置:
# 将静态资源重定向到 CDN 域名
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
    rewrite ^(.*)$ https://your-cdn-domain.com$1 permanent;
}

对于小型项目,Cloudflare 免费版也能提供不错的 CDN 加速效果:

  1. 在 Cloudflare 注册账号并添加您的域名;
  2. 修改 DNS 将域名指向 Cloudflare 提供的服务器;
  3. 在控制面板中设置适当的缓存级别。

特别提示:即使您的用户群都在同一地区,仍然强烈建议使用 CDN,因为它能有效减轻服务器负担,提高系统整体稳定性,尤其是在访问量大的情况下。

#III. 静态资源优化

#6. 服务器压缩与缓存配置

【前提条件】

  • CPU 资源:压缩会增加服务器的 CPU 负载,所以您的服务器应有足够的处理能力。
  • Nginx 模块支持:Gzip 压缩一般内置支持,但 Brotli 压缩可能需要额外安装模块。
  • 配置权限:需要有修改服务器配置的权限。

【提示】

通过启用压缩和合理的缓存策略,可以显著减少数据传输量和重复请求,相当于给您的资源做"瘦身"处理,让加载速度飞起来。 20250409175241

【优化建议】

  • 最简单的方案:用 Cloudflare 的免费CDN服务,即可自动开启Gzip压缩。
  • 启用 Gzip 或 Brotli 压缩,在 Nginx 中可以这样设置:
# 启用 Gzip 压缩
gzip on;
gzip_comp_level 6;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

# 如果支持 Brotli 压缩,可启用以获得更高效的压缩效果
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

• 为静态资源设置合适的缓存头,减少重复加载:

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 30d;
    add_header Cache-Control "public, max-age=2592000";
    access_log off;
}

#7. 使用 SSL/TLS 并优化性能

【前提条件】

  • SSL 证书:您需要有一个有效的 SSL 证书(可以使用免费的 Let's Encrypt)。
  • 服务器配置权限:需要能够修改 SSL 配置。
  • DNS 配置:为 OCSP Stapling 配置可靠的 DNS 解析器。

【提示】

安全总是第一位的,但 HTTPS 的配置如果不当,也可能增加一些延迟。这里有一些优化的小技巧,可以帮助您在确保安全的同时,又能保持高效性能。

【优化建议】

  • 使用 TLS 1.3,这是目前最快的 TLS 版本。在 Nginx 中配置:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
  • 启用 OCSP Stapling 来减少证书验证所花费的时间:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
  • 通过会话复用减少重复握手的时间:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

【跨国场景优化效果】 特别说明:以下是在跨国/跨12个时区场景下的优化效果,这与前面提到的本地访问场景(约3秒)有本质区别。地理距离造成的网络延迟是不可避免的,但通过优化仍能显著提升速度:

综合应用 Http2 + CDN缓存 + Gzip压缩 + Brotli压缩后: 优化前(跨国访问),13秒: 20250409130618 优化后(跨国访问),8秒: 20250409173528

这个例子说明,即使在地理位置相距遥远的情况下,合理的优化措施仍然能将加载时间缩短约40%,大幅改善用户体验。

#IV. 监控与问题排查

#8. 性能监控与基本分析

【前提条件】

  • 可访问性:您的网站必须是公开可访问的才能使用大多数在线测试工具。
  • 基本技能:需要理解性能指标的基本含义,不过我们会解释每个关键指标。

【提示】

如果不知道哪里成为了瓶颈,就很难精确地进行优化。建议使用一些免费工具来监控网站性能,帮助大家找到问题所在。

【优化建议】

使用如下免费工具检查网站性能:

  • Google PageSpeed Insights
  • WebPageTest
  • Pingdom

关注以下关键指标:

  • 页面加载时间
  • 服务器响应时间
  • DNS 解析时间
  • SSL 握手时间

常见问题应对:

  • DNS 解析慢?考虑更换 DNS 服务或启用 DNS 预解析。
  • SSL 握手慢?优化 SSL 配置,启用会话复用。
  • 服务器响应慢?检查服务器资源,必要时进行升级。
  • 静态资源加载慢?可尝试实施 CDN 和调整缓存策略。

#部署优化快速检查清单

下面这份清单可以帮助大家快速检查和优化 NocoBase 的部署:

  1. HTTP 版本检查

    • 已启用 HTTPS(HTTP/2 的前提条件)
    • 已启用 HTTP/2
    • 如条件允许,可考虑支持 HTTP/3
  2. 带宽评估

    • 服务器带宽充足(建议至少 10Mbps,优选 50Mbps 以上)
    • 可采用按流量计费模式而非固定带宽
  3. 服务器位置选择

    • 服务器选址应靠近用户所在地区
    • 针对全球用户,考虑使用全球加速服务
  4. 部署架构

    • 使用 Nginx/Caddy 作为反向代理,将静态资源与 API 分离
    • 如有需要,采用多实例部署和负载均衡技术
  5. CDN 实施

    • 通过 CDN 加速静态资源分发
    • 配置合适的缓存策略
    • 确保 CDN 支持 HTTP/2 或 HTTP/3
  6. 压缩与缓存

    • 启用 Gzip 或 Brotli 压缩
    • 设置合适的浏览器缓存头
  7. SSL/TLS 优化

    • 使用 TLS 1.3 提升握手速度
    • 启用 OCSP Stapling
    • 配置 SSL 会话复用
  8. 性能监控

    • 定期使用性能测试工具评估网站
    • 监控关键指标(加载、响应、解析、握手时间)
    • 针对问题进行优化调整

#常见问题与解答

【问】我的服务器部署在海外,中国用户访问速度缓慢,该怎么办呢?

【答】最好的办法是选择中国区域内的云服务器重新部署。如果实在无法更换,也可以:

  1. 使用国内 CDN 加速静态资源;
  2. 利用全球加速服务来优化网络路由;
  3. 尽可能启用所有压缩和缓存优化措施。

【问】为什么我的 NocoBase 首次加载很慢,而之后却很快?

【答】首次加载慢比较正常,因为首次需要下载大量资源,以我们的官方 Demo 为例,通常首次加载时间为3秒左右。

后续日常输入网址、进入应用的速度约为1-2秒,而应用内切换页面的速度约为50-300毫秒,延迟很低。

20250416130719

对于加载时间过长的情况,仍有优化空间:

  1. 确保启用了 HTTP/2;
  2. 实施 CDN 加速;
  3. 启用 Gzip/Brotli 压缩;
  4. 检查服务器带宽是否足够。

【问】我目前使用虚拟主机,无法修改 Nginx 配置怎么办?

【答】在此情况下,虽然优化选项较少,但仍建议:

  1. 尝试使用 CDN 服务(如 Cloudflare);
  2. 优化应用程序中可以调整的参数;
  3. 如果条件允许,可考虑升级到支持更多自定义配置的 VPS。

通过这些简单而实用的部署优化策略,您可以显著提升 NocoBase 的访问速度,给用户带来更流畅的体验。很多优化措施只需在几小时内完成设置,无需改动代码,轻轻松松就能见到效果。