iT邦幫忙

2025 iThome 鐵人賽

DAY 14
1
Modern Web

30天一起搞懂Web觀念系列 第 14

[DAY14] 反向代理是什麼?

  • 分享至 

  • xImage
  •  

什麼是反向代理?

簡單來說就是網站的門口管理員,幫忙處理、轉發請求,讓真正的伺服器在後面安靜工作


為什麼需要反向代理?

早期網站架構很單純,所有東西(前端、後端、資料庫、靜態檔案)都跑在同一台伺服器上,這就是單體式架構(Monolithic)

https://ithelp.ithome.com.tw/upload/images/20250817/20177952pjnxCycC13.png

但當使用者變多,單台機器不夠快,我們最直覺的做法就是升級硬體,像是換CPU、加更多的記憶體…,這就是垂直擴展(Vertical Scaling),雖然短期內有用,但總有極限

https://ithelp.ithome.com.tw/upload/images/20250817/20177952bgmutq7QZJ.png

而當硬體升級不夠用了,就會想到用多台伺服器分擔工作,這就是水平擴展(Horizontal Scaling)

https://ithelp.ithome.com.tw/upload/images/20250817/20177952lZv1UoqaBl.png

但是那麼多台伺服器當使用者發送請求時,要怎麼知道該送到哪一台伺服器?

如果有 10 台後端,難道要讓使用者自己決定連哪一台?當然不行!

所以這時候反向代理(Reverse Proxy)就出現了

這時候就需要「統一入口」

  • 使用者只知道一個網址(例如 example.com
  • 反向代理(如 Nginx)站在前面接收所有請求
  • 再由代理把請求分配到後端伺服器

https://ithelp.ithome.com.tw/upload/images/20250817/201779529bPqpQA4rA.png


反向代理的好處

它的好處包括:

  • 負載平衡(Load Balancing):請求由代理平均分散至多台伺服器
  • 安全防護:隱藏真實伺服器 IP,並集中處理 TLS/SSL,解決伺服器直接暴露問題
  • 快取靜態資源:代理可快取(cache)把一些靜態的資源(圖片、CSS、JS)放在快取裡,減少後端壓力
  • 架構更易擴展:新增或移除伺服器只需在代理層更新設定,使用者端完全無感
  • 統一管理:代理端可統一處理 header、身份驗證與過濾規則

常見反向代理軟體

  • Nginx:最常見的反向代理,輕量快速
  • Apache HTTP Server(mod_proxy):老牌 Web Server,也能當反向代理
  • HAProxy:專注於高效能負載平衡

參考資料

https://kucw.io/blog/nginx/

https://zh.wikipedia.org/zh-tw/反向代理


上一篇
[DAY13] DNS是什麼?
下一篇
[DAY15] CORS 是什麼?
系列文
30天一起搞懂Web觀念29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言