博客 / 詳情

返回

如何部署 NocoBase 才更快

原文鏈接:https://www.nocobase.com/cn/tutorials/how-to-deploy-nocobase-...。

很多朋友在部署 NocoBase 時可能會覺得訪問速度不夠理想。很多時候是由於網絡環境、配置或服務架構的影響。今天,我和大家聊聊那些只需調整部署設置就能顯著提升訪問速度的技巧:

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秒之間。
20250416130719

對於加載時間過長的情況,仍有優化空間:

  1. 確保啓用了 HTTP/2;
  2. 實施 CDN 加速;
  3. 啓用 Gzip/Brotli 壓縮;
  4. 檢查服務器帶寬是否足夠。

【問】我目前使用虛擬主機,無法修改 Nginx 配置怎麼辦?

【答】在此情況下,雖然優化選項較少,但仍建議:

  1. 嘗試使用 CDN 服務(如 Cloudflare);
  2. 優化應用程序中可以調整的參數;
  3. 如果條件允許,可考慮升級到支持更多自定義配置的 VPS。

通過這些簡單而實用的部署優化策略,您可以顯著提升 NocoBase 的訪問速度,給用户帶來更流暢的體驗。很多優化措施只需在幾小時內完成設置,無需改動代碼,輕輕鬆鬆就能見到效果。

user avatar sunmengyuan 頭像 lamazhenyuan 頭像 fabarta 頭像
3 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.