基於 Angular 的企業級 Web 應用伺服器端渲染的推薦建構

注销發表於2022-02-21

圖片來源:

一個普通的 Angular 應用程式在瀏覽器中執行,在 DOM 中呈現頁面以響應使用者操作。 Angular Universal 在伺服器上執行,生成靜態應用程式頁面,然後在客戶端上引導。 這意味著應用程式通常會更快地呈現,讓使用者有機會在應用程式完全互動之前檢視應用程式佈局。

起點是使用者的請求,通常從瀏覽器發出。

請求應該到達快取層(例如 CDN),該層可能包含已經在伺服器端呈現的應用程式,在這種情況下響應非常快。

CDN 通常將伺服器端渲染儲存一段時間,具體取決於業務需求。在給定時間之後,快取失效。為了以最佳方式進行此失效,建議 CDN 在快取被驅逐之前請求新的伺服器端渲染,並在執行新渲染時繼續提供現有快取。

如果 CDN 沒有快取 SSR 渲染,它會將請求進一步轉發到反向代理(例如負載均衡器)。

反向代理(通常是負載均衡器)將決定將請求轉發到哪個 SSR 節點(在節點叢集中)。

SSR 節點接收請求並開始渲染。它向 OCC API 發出 OCC 呼叫。

不建議將 SSR 伺服器/節點直接暴露給使用者,因為渲染速度很慢並且無法滿足預期的響應時間。

OCC API 快取層負責快取來自 OCC API 伺服器的 OCC API 響應。通常,這意味著快取 GET 和 HEAD 請求的響應。如果 OCC API 快取層快取了響應,則立即將其返回給 SSR 節點,而無需將請求到達實際的 OCC API 伺服器,從而使 SSR 節點執行渲染的速度非常快。

建議為 OCC API 伺服器設定某種快取層,因為這部分在伺服器端渲染時花費的時間最多。

如果 OCC API 快取層不包含給定請求的快取響應,它會將其轉發給 OCC 伺服器進行處理。

相關文章