標籤:三層 back 系統 代理服務 升級 res 資源 src add
1. 什麼是B/S架構
B/S架構的全稱為Browser/Server,即瀏覽器/伺服器結構。Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在伺服器端實現。B/S架構的系統無須特別安裝,只有Web瀏覽器即可。其實就是我們前端現在做的一些事情,大部分的邏輯交給後台來實現,我們前端大部分是做一些資料渲染,請求等比較少的邏輯。
B/S 架構分層。
第一層表現層:主要完成使用者和背景互動及最終查詢結果的輸出功能。
第二層邏輯層:主要是利用伺服器完成用戶端的應用邏輯功能。
第三層資料層:主要是接受用戶端請求後獨立進行各種運算。
B/S架構的優點:
1、用戶端無需安裝,有Web瀏覽器即可。
2、BS架構可以直接放在廣域網路上,通過一定的許可權控制實現多客戶訪問的目的,互動性較強。
3、BS架構無需升級多個用戶端,升級伺服器即可。可以隨時更新版本,而無需使用者重新下載啊什麼的。
B/S架構的缺點:
1、在跨瀏覽器上,BS架構不盡如人意。
2、表現要達到CS程式的程度需要花費不少精力。
3、在速度和安全性上需要花費巨大的設計成本,這是BS架構的最大問題。
4、用戶端伺服器端的互動是要求-回應模式,通常需要重新整理頁面,這並不是客戶樂意看到的。(在Ajax風行後此問題得到了一定程度的緩解)
2. B/S 的架構模式
第一種 用戶端 伺服器 資料庫
1、用戶端向伺服器發起Http請求
2、伺服器中的web服務層能夠處理Http請求
3、伺服器中的應用程式層部分調用商務邏輯,調用商務邏輯上的方法
4、如果有必要,伺服器會和資料庫進行資料交換. 然後將模版+資料渲染成最終的Html, 返送給用戶端
第二種:用戶端-web伺服器-應用伺服器-資料庫
用戶端向web伺服器發起Http請求
web服務能夠處理Http請求,並且調用應用伺服器暴露在外的RESTFUL介面
應用伺服器的RESTFUL介面被調用,會執行對應的暴露方法.如果有必要和資料庫進行資料互動,應用伺服器會和資料庫進行互動後,將json資料返回給web伺服器
web伺服器將模版+資料群組合渲染成html返回給用戶端
第三種方法:用戶端-負載平衡器(Nginx)-中間伺服器(Node)-應用伺服器-資料庫
這種模式一般用在有大量的使用者,高並發的應用中
1、整正暴露在外的不是真正web伺服器的地址,而是負載平衡器器的地址
2、客戶向負載平衡器發起Http請求
3、負載平衡器能夠將用戶端的Http請求均勻的轉寄給Node伺服器叢集
4、Node伺服器接收到Http請求之後,能夠對其進行解析,並且能夠調用應用伺服器暴露在外的RESTFUL介面
5、應用伺服器的RESTFUL介面被調用,會執行對應的暴露方法.如果有必要和資料庫進行資料互動,應用伺服器會和資料庫進行互動後,將json資料返回給Node
6、Node層將模版+資料群組合渲染成html返回反向 Proxy伺服器
7、反向 Proxy伺服器將對應html返回給用戶端
Nginx的優點有:
1、它能夠承受、高並發的大量的請求,然後將這些請求均勻的轉寄給內部的伺服器,分攤壓力.
2、反向 Proxy能夠解決跨域引起的問題,因為Nginx,Node,應用伺服器,資料庫都處於內網段中。
3、Nginx非常擅長處理靜態資源(img,css,js,video),所以也經常作為靜態資源伺服器,也就是我們平時所說的CDN
比如:前一個使用者訪問index.html, 經過Nginx-Node-應用伺服器-資料庫鏈路之後,Nginx會把index.html返回給使用者,並且會把index.html緩衝在Nginx上,
下一個使用者再想請求index.html的時候,請求Nginx伺服器,Nginx發現有index.html的緩衝,於是就不用去請求Node層了,會直接將緩衝的頁面(如果沒到期的話)返回給使用者。
B/S架構的幾種形式