mirror of
https://github.com/acepanel/acepanel.github.io.git
synced 2026-02-05 19:53:26 +08:00
136 lines
3.7 KiB
Markdown
136 lines
3.7 KiB
Markdown
# 反向代理
|
||
|
||
反向代理网站用于将外部请求转发到后端服务,常用于部署 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 服务
|
||
```
|
||
|
||
## 编辑反向代理网站
|
||
|
||
点击网站列表中的 **编辑** 按钮进入编辑页面。
|
||
|
||
### 域名和监听
|
||
|
||
配置网站的域名和监听端口,支持添加多个域名和端口。
|
||
|
||

|
||
|
||
- **域名**:可添加多个域名
|
||
- **监听地址**:可配置多个端口,支持 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-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 错误
|