Web技術基礎
在負載平衡器後方放置3台應用程式伺服器,依序把請求分配給各伺服器(循環配置)。已登入使用者的工作階段資訊,只保存在處理登入之伺服器的記憶體中。容易發生的問題與對策的組合,下列何者適當?
- A被分配到其他伺服器時找不到工作階段,看起來像是登入中斷了。把工作階段放在所有伺服器都能使用的共用位置
- B3台伺服器各自發出相同的工作階段ID而發生衝突。把工作階段ID改成簡短的連號,讓使用者容易記住ID
- C負載平衡器無法讀取Cookie,因此無法使用HTTPS。讓負載平衡器與伺服器之間的通訊不加密
查看答案與解析
正確答案:A. 被分配到其他伺服器時找不到工作階段,看起來像是登入中斷了。把工作階段放在所有伺服器都能使用的共用位置
工作階段資訊只存在於1台伺服器的記憶體時,下一個請求被分配到別台伺服器,那台伺服器就無法辨識使用者。對策之一是把工作階段放在任何伺服器都能讀寫的共用儲存區(記憶體內資料儲存區或資料庫)。另一個是把同一使用者的請求持續分配給同一台伺服器的工作階段保持(黏性工作階段),但該伺服器停止時工作階段就會遺失,負載也容易不均。讓伺服器不保有狀態,就容易增減伺服器的台數。
- A. 正確。放在共用位置,任何伺服器都能使用相同的工作階段。
- B. 工作階段ID要設為無法被猜測、足夠長的隨機值。縮短會提高被冒充的風險。
- C. 工作階段的問題與HTTPS無關。停止加密只會降低安全性。