iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
IT Operation

從零開始的 Linux 維運與 Bash 自動化實戰 30 天系列 第 13

Day 13: Nginx Reverse Proxy 與網域轉發實作

  • 分享至 

  • xImage
  •  
  • Forward Proxy (正向代理):代表「用戶端」(例如 VPN),幫你開門去存取外面的網站。
  • Reverse Proxy (反向代理):代表「伺服器端」,站在最前端接收流量,再依照網域或路徑分發給後端的 App(如 Node.js、Python 或 Docker 容器)。

反向代理的好處

  • 隱藏後端真實 IP 與 Port:保護後端服務不直接暴露。
  • 統一入口與 SSL 憑證:只需在 Nginx 設定 HTTPS 憑證,後端服務免重複設定。
  • 負載平衡與快取:提高網站回應速度與穩定度。

Nginx 反向代理核心設定結構
Nginx 的站點設定通常放在 /etc/nginx/sites-available/ 目錄下

實作
https://ithelp.ithome.com.tw/upload/images/20260913/20183847zzAljgctB8.png
https://ithelp.ithome.com.tw/upload/images/20260913/20183847P2pw4DmDVa.png

  • 建立背景測試服務與直連測試
    主要指令:python3 -m http.server 8080 & 與 curl http://127.0.0.1:8080
    操作目的:在背景啟動一個監聽於 Port 8080 的 Python HTTP 伺服器,模擬後端應用程式,並透過 curl 確認該服務能正常回應目錄畫面。
    https://ithelp.ithome.com.tw/upload/images/20260913/201838473GeEkz5WCG.png
  • 編輯反向代理設定檔
    主要指令:sudo nano /etc/nginx/sites-available/proxy.conf
    操作目的:設定 Nginx 監聽 Port 80,並將 /proxy-test/ 路徑下的流量透過 proxy_pass http://127.0.0.1:8080/; 安全轉發給後端服務。
  • 啟用設定、檢測語法與重新載入
    主要指令:
    sudo ln -s /etc/nginx/sites-available/proxy.conf /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    操作目的:建立軟連結啟用站點設定,確認 Nginx 設定檔語法無誤(顯示 test is successful)後重新載入服務。
    https://ithelp.ithome.com.tw/upload/images/20260913/20183847h9MeeRdOyZ.png
  • 驗證反向代理轉發
    主要指令:curl http://localhost/proxy-test/
    操作目的:透過 Port 80 發送 HTTP 請求給 Nginx 的 /proxy-test/ 子路徑。
    解析:終端機印出 GET / HTTP/1.0 200 與 Python 伺服器產生的目錄 HTML 內容,證明流量已順利經由 Nginx 轉發給 Port 8080。

上一篇
Day 12: UFW 防火牆設定與埠號控管
下一篇
Day 14 :綜合實務演練
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言