反向代理
反向代理网站用于将外部请求转发到后端服务,常用于部署 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 错误
