反向代理
反向代理網站用於將外部請求轉發到後端服務,常用於部署 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)
上游配置
上游(Upstream)定義了後端伺服器地址,支持配置多個後端實現負載均衡。

- 上游名稱:上游的標識名稱
- 負載均衡算法:支持輪詢(默認)、IP Hash 等算法
- 保持活動連接:與後端保持的長連接數量
- DNS 解析器:自定義 DNS 解析器
點擊 添加伺服器 按鈕可以添加後端伺服器:

- 伺服器地址:後端伺服器地址,如
127.0.0.1:8080 - 選項:可選參數,如
weight=5(權重)、backup(備用伺服器)等
代理配置
配置代理行為和請求頭傳遞。

- 匹配類型:匹配類型,如前綴匹配、正則匹配等
- 匹配表達式:匹配的 URL 表達式
- 代理目標:填寫上游名稱或直接填寫後端地址
- 啟用緩存:是否啟用代理緩存
- 啟用緩衝區:是否啟用緩衝區,AI 應用建議關閉否則可能影響流式輸出
- 代理 SNI:是否啟用 SNI(僅 HTTPS 代理有效)
- 自定義請求頭:添加或修改傳遞給後端的請求頭
- 響應內容替換:可替換響應內容中的字符串
使用場景
Node.js 應用
bash
# 啟動 Node.js 應用
node app.js # 監聽 3000 端口代理目標:http://127.0.0.1:3000
Docker 容器
如果後端是 Docker 容器,可以使用容器的 IP 地址或容器名稱(同一網絡內)。
代理目標:http://容器名:端口 或 http://容器IP:端口
多個後端(負載均衡)
在上游配置中添加多個後端地址,實現負載均衡。
代理目標:http://上游名稱
常見配置
WebSocket 支持
反向代理默認支持 WebSocket,無需額外配置。
傳遞真實 IP
AcePanel 會自動配置以下請求頭,將用戶真實 IP 傳遞給後端:
X-Real-IPX-Forwarded-ForX-Forwarded-Proto
自定義配置
在網站管理頁面可以編輯 Nginx 配置,添加自定義配置:
nginx
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffer_size 64k;
proxy_buffers 4 64k;注意事項
- 確保後端服務已啟動並監聽指定端口
- 如果後端是 Docker 容器,確保端口已正確映射或使用 Docker 網絡
- 後端服務崩潰時,Nginx 會返回 502 錯誤
