2
0
mirror of https://github.com/acepanel/acepanel.github.io.git synced 2026-02-04 14:07:16 +08:00
Files
acepanel.github.io/zh_TW/advanced/website/proxy.md
github-actions[bot] 5b9a08c9a1 New Crowdin translations by GitHub Action (#76)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-01-27 05:28:16 +08:00

136 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 反向代理
反向代理網站用於將外部請求轉發到後端服務,常用於部署 Node.js、Go、Java、Python 等應用。
## 工作原理
```
用戶請求 -> Nginx (反向代理) -> 後端應用 (如 localhost:3000)
```
Nginx 接收用戶的 HTTP/HTTPS 請求,然後將請求轉發到指定的後端地址。
## 創建反向代理網站
1. 進入 **網站** 頁面
2. 確保選中 **反向代理** 標籤
3. 點擊 **創建網站**
### 配置項
- **名稱**:網站標識,如 `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 服務
```
## 編輯反向代理網站
點擊網站列表中的 **編輯** 按鈕進入編輯頁面。
### 域名和監聽
配置網站的域名和監聽端口,支持添加多個域名和端口。
![域名和監聽配置](/images/website/website-proxy-edit.png)
- **域名**:可添加多個域名
- **監聽地址**:可配置多個端口,支持 HTTPS 和 QUIC(HTTP3)
### 上游配置
上游Upstream定義了後端伺服器地址支持配置多個後端實現負載均衡。
![上游配置](/images/website/website-proxy-upstream.png)
- **上游名稱**:上游的標識名稱
- **負載均衡算法**支持輪詢默認、IP Hash 等算法
- **保持活動連接**:與後端保持的長連接數量
- **DNS 解析器**:自定義 DNS 解析器
點擊 **添加伺服器** 按鈕可以添加後端伺服器:
![添加伺服器](/images/website/website-proxy-upstream-add.png)
- **伺服器地址**:後端伺服器地址,如 `127.0.0.1:8080`
- **選項**:可選參數,如 `weight=5`(權重)、`backup`(備用伺服器)等
### 代理配置
配置代理行為和請求頭傳遞。
![代理配置](/images/website/website-proxy-proxy.png)
- **匹配類型**:匹配類型,如前綴匹配、正則匹配等
- **匹配表達式**:匹配的 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-IP`
- `X-Forwarded-For`
- `X-Forwarded-Proto`
### 自定義配置
在網站管理頁面可以編輯 Nginx 配置,添加自定義配置:
```nginx
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
```
## 注意事項
1. 確保後端服務已啟動並監聽指定端口
2. 如果後端是 Docker 容器,確保端口已正確映射或使用 Docker 網絡
3. 後端服務崩潰時Nginx 會返回 502 錯誤