反向代理
反向代理網站用於將外部請求轉發至後端服務,常用於部署 Node.js、Go、Java、Python 等應用程式。
運作原理
使用者請求 -> Nginx(反向代理)-> 後端應用程式(例如 localhost:3000)Nginx 接收使用者的 HTTP/HTTPS 請求,並將其轉發至指定的後端位址。
建立反向代理網站
- 前往 網站 頁面
- 確認已選取 反向代理 分頁
- 點選 建立網站
設定項目
- 名稱:網站識別碼,例如
myapp - 網域:綁定的網域,例如
app.example.com - 連接埠:監聽連接埠,預設為 80
- 代理目標:後端服務位址,例如
http://127.0.0.1:3000 - 備註:選填備註
代理目標格式
http://127.0.0.1:3000 # 本機服務
http://localhost:8080 # 本機服務
http://172.18.0.2:80 # Docker 容器
https://backend.internal # 內部 HTTPS 服務編輯反向代理網站
點選網站清單中的 編輯 按鈕進入編輯頁面。
網域與監聽
設定網站的網域與監聽連接埠,支援多個網域與連接埠。

- 網域:可新增多個網域
- 監聽位址:可設定多個連接埠,支援 HTTPS 與 QUIC(HTTP3)
上游設定
上游用於定義後端伺服器位址,支援多個後端以進行負載平衡。

- 上游名稱:上游的識別名稱
- 負載平衡演算法:對於 Nginx,支援輪詢(預設)、
least_conn、ip_hash、hash與random;對於 Apache,支援輪詢(預設)、最少忙碌與依流量分配 - 保持連線數:與後端維持的持久連線數量
- DNS 解析器:自訂 DNS 解析器與解析逾時時間(僅 Nginx)
點選 新增伺服器 按鈕以新增後端伺服器:

- 伺服器位址:後端伺服器位址,例如
127.0.0.1:8080 - 選項:選填參數,例如
weight=5(權重)、backup(備援伺服器)等。
代理設定
設定代理行為與請求標頭轉發。 每條代理規則會將一個 location 對應到一個後端。

- 比對類型:location 比對類型,例如完全比對(
=)、優先前綴比對(^~)、前綴比對、區分大小寫正規表示式(~)與不區分大小寫正規表示式(~*) - 比對運算式:要比對的 URL 運算式
- 代理轉發:填寫上游名稱或直接填寫後端位址,例如
http://127.0.0.1:8080或http://upstream_name - 代理 Host:傳送給後端的
Host標頭(預設為$proxy_host,或自動從代理轉發位址中擷取) - 啟用快取:是否啟用代理快取
- 啟用緩衝:是否啟用緩衝,AI 應用程式建議停用,否則可能影響串流輸出
- 代理 SNI:傳送給後端的 SNI(僅對 HTTPS 後端有效)
- DNS 解析器:自訂 DNS 解析器與解析逾時時間(僅 Nginx)
- 自訂請求標頭:新增或修改傳遞給後端的請求標頭
- 回應內容取代:可取代回應內容中的字串
進階設定
對於 Nginx,每條代理規則還提供一個進階設定面板:
- HTTP 版本:後端通訊協定版本(HTTP/1.0、HTTP/1.1、HTTP/2)
- 最大請求主體大小:此規則的最大請求主體大小
- 逾時設定:連線 / 讀取 / 傳送逾時時間
- 重試設定:上游請求失敗時的重試條件、最大重試次數與重試逾時時間
- SSL 後端驗證:驗證後端憑證(僅在 HTTPS 後端時顯示)
- 回應標頭:隱藏或新增回應標頭
- IP 存取控制:針對此規則允許或拒絕訪客 IP/CIDR
重新導向
重新導向分頁可讓你新增在請求抵達代理之前生效的重新導向規則。 每條規則為一張卡片,可透過拖曳重新排序。
- 重新導向類型:
- URL 重新導向(
url):將來源路徑重新導向至目標路徑 - 主機重新導向(
host):將來源主機重新導向至目標 URL(例如強制將www導向主網域) - 404 重新導向(
404):將原本會回傳 404 的請求重新導向至目標 URL
- URL 重新導向(
- 狀態碼:
301(永久移動)、302(找到)、307(暫時重新導向)或308(永久重新導向,預設) - 來源:來源路徑(URL 類型)或來源主機(Host 類型);404 類型不使用此項
- 目標:目標路徑(URL 類型)或目標 URL(Host/404 類型)
- 保留 URI:啟用後,原始請求路徑與查詢參數會被保留並附加至目標位址
HTTPS
HTTPS 分頁用於管理網站的 TLS。 當已綁定憑證時,摘要卡片會顯示憑證有效期間、簽發者與涵蓋的網域。
- 主開關:啟用或停用此網站的 HTTPS。 啟用後會自動新增
443監聽(Nginx 還會新增quic);停用後會移除443監聽並清除ssl/quic旗標 - 使用現有憑證:選擇憑證管理中已託管的憑證,以自動填入憑證與私密金鑰
- HSTS:啟用 HTTP 嚴格傳輸安全
- HTTP 導向:強制將純 HTTP 請求重新導向至 HTTPS
- OCSP 裝訂:啟用 OCSP 裝訂
- TLS 版本:在 TLS 1.0、TLS 1.1、TLS 1.2 與 TLS 1.3 中選擇允許的通訊協定
- 憑證 / 私密金鑰:直接貼上 PEM 憑證與 KEY 私密金鑰內容
一鍵簽發憑證
當網站至少有一個網域時,頁尾的一鍵簽發憑證按鈕會為已綁定的網域申請免費憑證。 若任一網域為萬用網域(例如 *.example.com),會跳出對話方塊提示你選擇一個 DNS 供應商(在憑證管理中設定),以便透過 DNS 驗證簽發憑證。
進階設定(全站)
進階設定分頁將多個全站選項歸類至可摺疊的面板中。
存取統計
僅 Nginx 可用。 開啟啟用統計以收集此網站的存取統計資料(可在網站統計頁面檢視)。
日誌設定
- 存取日誌:選擇停用(
off)、預設路徑或填寫自訂路徑 - 錯誤日誌:選擇停用(
off)、預設路徑或填寫自訂路徑
當設定了日誌路徑(且未停用)時,編輯器還會顯示存取日誌 / 錯誤日誌分頁供即時檢視,頁尾的清除日誌按鈕會清空目前檢視的日誌檔案。
速率限制
開啟啟用速率限制以開啟此功能;下方的限制欄位僅在啟用後才會出現。
- 並行限制:整個網站的最大並行連線數(
0= 不限制) - 單一 IP 限制:每個訪客 IP 的最大並行連線數(
0= 不限制) - 速率限制:單一請求的傳輸速率限制,單位為 KB(
0= 不限制)
真實 IP
當 AcePanel 本身位於 CDN 或 Frp 之後時,用於識別訪客的真實 IP(這與向後端轉發標頭不同;請參閱 轉發真實 IP)。
- 啟用:開啟或關閉此功能
- IP 來源:受信任的上游 IP 或 CIDR,每行一個(例如
127.0.0.1、10.0.0.0/8)。 若使用 Frp,請填寫 Frp 的 IP;若使用 CDN,請填寫 CDN 的 IP 範圍。 若不確定,可以使用0.0.0.0/0/::/0(不安全) - IP 標頭:攜帶真實 IP 的標頭,例如
X-Real-IP、X-Forwarded-For、CF-Connecting-IP、True-Client-IP、Ali-Cdn-Real-Ip或EO-Connecting-IP(允許自訂值) - 遞迴查找:在
X-Forwarded-For標頭中遞迴查找真實 IP
基本驗證
在使用者憑證下新增使用者名稱/密碼配對,要求訪客在存取網站前進行 HTTP 基本驗證。 將清單留空則停用驗證。
使用情境
Node.js 應用程式
# 啟動 Node.js 應用程式
node app.js # 監聽 3000 連接埠代理目標:http://127.0.0.1:3000
Docker 容器
若後端為 Docker 容器,可使用容器的 IP 位址或容器名稱(須在同一網路內)。
代理目標:http://container-name:port 或 http://container-IP:port
多後端(負載平衡)
在上游設定中新增多個後端位址即可實現負載平衡。
代理目標:http://upstream-name
常見設定
WebSocket 支援
反向代理預設支援 WebSocket,無須額外設定。
轉發真實 IP
AcePanel 會自動設定以下請求標頭,將使用者的真實 IP 傳遞給後端:
X-Real-IPX-Forwarded-ForX-Forwarded-Proto
NOTE
這是關於將訪客 IP 轉發給你的後端服務,與進階設定(全站)中的真實 IP 功能是不同的兩件事。 那項功能是關於 AcePanel 本身在位於 CDN 或 Frp 之後時還原訪客的真實 IP(亦即讀取受信任的上游標頭,而非代理本身的 IP)。 當 AcePanel 位於另一個代理之後時請使用真實 IP;當你的後端需要用戶端 IP 時請使用標頭轉發。
自訂設定
你可以在網站編輯器的自訂設定分頁中新增自訂設定。 每條設定都有一個名稱與一個範圍(本網站或全域),讓你無須手動編輯檔案即可注入額外的指令:
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffer_size 64k;
proxy_buffers 4 64k;注意事項
- 請確認後端服務已啟動並監聽指定的連接埠
- 若後端為 Docker 容器,請確認連接埠已正確對應,或使用 Docker 網路
- 當後端服務當機時,Nginx 會回傳 502 錯誤
