開始前準備

本篇適合進階使用者. 以 aaPanel 8.0.6 繁體中文介面核對, 若仍為英文, 請先完成 切換繁體中文.

本篇使用 LNMP / Nginx, 以 /proxy-demo/ 轉送到 127.0.0.1:8081 的測試服務. 反向代理時訪客仍使用原網站網址. 先確認目標應用支援你選的網域與子路徑; 只適合根路徑的應用, 應改用獨立站點承接.

測試後端只監聽本機, 不需要把 8081 對外開放. 以下 Python 靜態服務只用於確認代理流程, 正式服務請使用應用建議的啟動與維護方式.

01準備可存取的本機測試服務

透過 SSH 建立簡單內容並啟動服務. 保持這個終端連線, 另開 SSH 視窗執行 curl 測試. 網站訪問帶有 /proxy-demo/ 路徑, 所以測試後端也準備相同路徑.

mkdir -p /var/tmp/aapanel-upstream/proxy-demo
printf '<h1>aaPanel proxy demo</h1>\n' > /var/tmp/aapanel-upstream/proxy-demo/index.html
python3 -m http.server 8081 --bind 127.0.0.1 \
  --directory /var/tmp/aapanel-upstream
curl http://127.0.0.1:8081/proxy-demo/

應看到示範 HTML. 若後端本身無法存取, 先修正服務或路徑, 再建立代理.

準備可存取的本機測試服務的操作示意圖 放大圖片
先確認圖中目標 URL 對應的後端服務與路徑可用.

02新增反向代理規則

進入 網站 > PHP項目 > Conf > 反向代理, 點 添加反向代理. 在 創建反向代理 填 代理名稱 tutorial_proxy, 顯示代理路徑的 Show Proxy Path 保持開啟, 代理目錄 填 /proxy-demo/, 目標 URL 填 http://127.0.0.1:8081/.

發送域名 本例保留 $host. 若後端依網域分流, 需改成它接受的名稱. 本例不開 啟用緩存 或 高級功能, 核對後按 確定. 不要將代理目標指回同一個公開網站入口而造成循環.

新增反向代理規則的操作示意圖 放大圖片
新增反向代理規則.

03從網站網址測試並核對錯誤

開啟 http://YOUR_SERVER_IP/proxy-demo/, 應看到後端內容, 地址列仍是公開網站路徑. 本次實測取得 200. 此設定實測會將子路徑送至後端, 不要只因目標 URL 以斜線結尾就假定路徑會被移除.

若回傳 404, 先對照後端是否有收到相同路徑; 若是 502, 檢查後端服務是否啟動, 連接埠及通訊協定是否正確, 再讀 網站錯誤日誌. 靜態檔正常後, 仍應測試應用登入, 圖片與 API; WebSocket 或子路徑設定需依應用文件處理.

完成暫時示範後, 可在 Python 終端按 Ctrl+C 停止測試服務, 並到代理規則列停用或刪除該測試規則. 正式網站先完成 HTTPS, 再提供給訪客使用.

從網站網址測試並核對錯誤的操作示意圖 放大圖片
從網站網址測試並核對錯誤.

操作時需要協助?

告訴我們您停在哪個步驟, 由客服協助您確認.

聯絡客服
返回線上教學