指定兩台電腦之間,該如何傳送超文本(例如 linked web document)
協議(Protocol)是一套兩台電腦間該如何溝通的規則
HTTP 提供了用戶端與伺服器端,該如何溝通的明確規則。
只有用戶端能發出 HTTP 請求,也只有伺服器能接受它。
相對地,也只有伺服器能回應用戶端的 HTTP 請求。
如果透過 HTTP 請求檔案,用戶端必須提供檔案的 URL
網路伺服器必須回應所有的 HTTP 請求,最起碼需要回應錯誤訊息。
所有指令都是純文字、人類也容易理解。
在本地端寫一個簡單的 index.html 網頁
在該資料夾 npm install -g http-server
以 node.js 運作的框架,通常都有幫你跑 http-server
安裝完後,在 index.html 的目錄下執行http-server
用 ngrok 將本地port 8080的HTTP伺服器開放出去
輕量級的Web server / 反向代理伺服器
同時也是 電子郵件代理伺服器
相較於 Apache 佔有記憶體更少,穩定性更高,並併發能力強,具有豐富的模組庫以及靈活的資源配置
反向代理是在真實伺服器與客戶端間的代理伺服器
當使用者透過客戶端 (瀏覽器) 訪問網站時,反向代理伺服器會將請求轉送到背後的真實伺服器,再將網站的結果傳送給客戶端。
真實伺服器可能是本機的其他 Port,也可能在內部網路,或者在其他外部網路,這樣使用者不會知道真實的伺服器在那裡,可以隱藏真正伺服器的位置,而且也可以實現 load balancing.
假設所有伺服器的處理效能都相同,不關心每臺伺服器的當前連線數和響應速度。
適合於伺服器組中的所有伺服器都有相同的軟硬體配置並且平均伺服器請求相對均衡的情況。
另有 Weight Round Robin (加權輪詢方式)
可以設置不同 Server 的權重
優點
缺點
當連線進來時會把 Request 導向連線數較少的 Server
# upstream 用於定義load balance
# 預設行為為round robin 這邊用權重來當範例
# parker 為自行定義的名稱
upstream parker {
server 192.168.88.116 weight=1;
server 192.168.88.117 weight=2;
}
#定義nginx開放port 9999
#使用者連線 192.168.88.115會自動導入到後端兩台web server
#proxy_pass 定義自動導入的位置
server {
listen 9999;
server_name 192.168.88.115;
location / {
proxy_pass http://parker;
}
}