2017-06-05 56 views
0

因此,我有一個Express.js服務器和一個Angular.js前端(通過快遞本身提供,不在外部部署)。我們有多個可以即時切換的網站「主題」。現在的主題數量是可以管理的,但我們預計它會進入數千(甚至可能是數千)從Azure Blob服務Express.js服務器的HTML文件

在當前實現中,我們將靜態主題文件(HTML,CSS)存儲在部署包本身中。隨着主題數量的不斷增加,部署包的大小正在迅速增長。

現在,我正在考慮將主題移動到外部存儲(Azure Blob),然後將靜態內容從Azure Blob存儲流式傳輸到Express.js並進行相應處理。

在這種情況下,Azure Blob存儲或任何其他存儲是否會成爲瓶頸?還是有更好的解決方案來解決這個「主題」計數問題?

回答

1

Blob存儲是一個很好的解決方案。 如果您使Bob存儲公衆可讀,那麼您可以直接從blob存儲中提供靜態文件,它們甚至不必通過Express服務器來到,從而卸載所有這些文件。我經常用css做這件事,並且有一些應用程序可以在blob存儲中服務整個前端應用程序,包括腳本;我只有一個HTML頁面,從我的主服務器提供腳本標記指向blob存儲。 使用Angular 1我只有一個構建步驟,它捆綁了腳本包中的所有html模板。

稍後,您可以將Bob存儲「升級」爲適當的CDN,這意味着您可以將所有靜態內容都提供給本地用戶。

FWIW,我相信haveibeenpwned是來自Azure Blob存儲的靜態內容。

+0

如果主題系統更具動態性會怎樣?主索引html本身在主題之間變化很大。對於每個主題,CSS和Angular中的一些邏輯也有所不同。 而且我們還需要一些餘地來允許用戶編輯模板併爲其自己加載一個模板。雖然我們很多快遞內部的代碼已經允許這樣做,但我只是想知道我們是否會在晚些時候被壓低。 想象一下,在一臺快遞服務器上託管着數百個(甚至數千個)「微型站點」。儘管每個網站都不會有太多的點擊量。 –

+0

這更關鍵的是你如何編寫代碼。藉助Angular,您可以輕鬆擁有一個通用的index.html,並在腳本文件中顯示所有內容。 – Frans