aaPanel Proxy Project 域名解析配置指南
aaPanel 中的 Proxy Project 用于为一个域名创建 反向代理。这种方式通常用于你的网站/app 正在内部端口运行的情况,例如:
http://127.0.0.1:3000
http://127.0.0.1:4099
http://localhost:8000
配置 Proxy Project 后,用户只需要访问域名,例如:
https://yourdomain.com
aaPanel/Nginx 会自动将请求转发到后端正在运行的应用程序。
1. 配置前的准备
创建 Proxy Project 之前,你需要准备:
域名
例如:
yourdomain.com
www.yourdomain.com
该域名需要将 DNS 指向安装 aaPanel 的服务器 IP。
DNS 记录示例:
| 类型 | 名称 | 值 |
|---|---|---|
| A | @ | 服务器 IP |
| A | www | 服务器 IP |
如果使用 Cloudflare,可以根据需求开启或关闭橙色云朵代理。首次配置 SSL 时,如果遇到验证错误,建议先临时切换为 DNS Only。
后端应用正在运行
例如 Node.js/Next.js 应用正在运行于:
http://127.0.0.1:3000
建议先使用以下命令检查:
curl http://127.0.0.1:3000
如果返回 HTML 或网站内容,说明应用运行正常。
2. 在 aaPanel 中创建 Proxy Project
在 aaPanel 中,进入网站管理或反向代理部分,选择:
Add proxy
然后按以下方式填写信息。
3. 配置 Domain Name
在 Domain name 输入框中,输入要通过代理运行的域名。
例如:
yourdomain.com
如果还想使用 www,也可以同时添加:
yourdomain.com
www.yourdomain.com
根据 aaPanel 界面不同,每个域名可能需要单独占一行输入。
4. 配置 Target
在 Target 部分,选择类型:
URL address
然后输入后端应用地址。
例如:
http://127.0.0.1:3000
含义:
yourdomain.com → aaPanel/Nginx → http://127.0.0.1:3000
当用户访问域名时,aaPanel 会将请求转发到运行在 3000 端口的应用。
一些常见的 Target 示例:
http://127.0.0.1:3000
http://127.0.0.1:4099
http://localhost:8000
http://192.168.1.10:8080
5. 配置 Send Host
在 Send Host 部分,建议保持默认值:
$http_host
该值可以帮助 aaPanel 将正确的原始 host/domain 发送给后端。
例如用户访问:
https://yourdomain.com
后端会接收到的 host 是:
yourdomain.com
这对 Next.js、Laravel、WordPress、API Gateway 或需要识别域名的系统非常重要。
只有在你明确知道后端需要接收哪个特定 host 时,才建议修改 Send Host。
6. 配置 URL Rewrite
URL Rewrite 部分用于在代理到后端之前重写路径。
例如:
/aaa → /bbb
如果没有 URL 重写需求,可以留空。
通常情况下,如果网站/app 使用完整域名运行,则不需要配置这一部分。
7. 配置 Remark
在 Remark 输入框中,可以填写备注,方便管理。
例如:
yourdomain.com
Next.js app port 3000
Proxy frontend website
然后点击:
Confirm
创建 Proxy Project。
8. 创建 Proxy 后检查网站
创建完成后,尝试访问:
http://yourdomain.com
如果配置正确,网站会显示来自以下应用的内容:
http://127.0.0.1:3000
如果还不能正常访问,需要检查:
curl http://127.0.0.1:3000
检查应用是否正在运行:
pm2 list
或者:
netstat -tulpn | grep 3000
9. 为域名启用 SSL

当 Proxy Project 可以通过 HTTP 正常访问后,下一步需要启用 SSL,让网站通过 HTTPS 运行。
在 aaPanel 中,进入 site/proxy project 管理页面,选择标签:
SSL
然后选择:
Let's Encrypt
或者如果已经有证书,则使用:
Other certificate
10. 申请 Let's Encrypt 证书
在 SSL 标签中,aaPanel 会显示类似以下信息:
Certificate brand: R13
Certificate domain(s): yourdomain.com, www.yourdomain.com
Expired: yyyy-mm-dd
如果还没有 SSL,点击:
Apply SSL
或者:
Renew SSL
如果想重新续期证书。
申请成功后,状态会显示:
Deployed
此时网站可以通过以下地址访问:
https://yourdomain.com
11. 申请 SSL 时的注意事项
为了让 Let's Encrypt 成功签发 SSL,需要确保:
域名已经正确指向服务器 IP。
80 和 443 端口已经开放。
网站/proxy project 已经在 aaPanel 中存在。
如果使用 Cloudflare,SSL/TLS 建议设置为:
Full
或者:
Full (strict)
前提是服务器上的 SSL 已经正常工作。
如果开启了 Cloudflare 橙色云朵代理并且 SSL 申请失败,可以尝试将 DNS 切换为:
DNS Only
然后重新申请 SSL。
12. 完整配置示例

假设你有一个 Next.js 应用正在运行于:
http://127.0.0.1:3000
你希望通过以下域名访问:
yourdomain.com
Proxy Project 配置如下:
| 项目 | 值 |
|---|---|
| Domain name | yourdomain.com |
| Target type | URL address |
| Target | http://127.0.0.1:3000 |
| Send Host | $http_host |
| URL Rewrite | 不需要时留空 |
| Remark | yourdomain.com |
然后在 SSL 标签中启用 SSL,并申请 Let's Encrypt 证书。
结果:
https://yourdomain.com
会代理到:
http://127.0.0.1:3000
13. 一些常见错误
502 Bad Gateway 错误
常见原因:
后端没有运行。
端口填写错误。
应用只监听 localhost,但配置不正确。
防火墙阻止了内部端口。
使用以下命令检查:
curl http://127.0.0.1:3000
如果该命令失败,需要先重启应用。
无法申请 SSL
常见原因:
域名没有正确指向 IP。
80 端口被阻止。
Cloudflare 代理导致验证错误。
site/proxy project 没有正确创建。
可以使用以下命令检查 DNS:
ping yourdomain.com
或者:
nslookup yourdomain.com
网站跳转到错误的域名
原因可能是 Send Host 配置不正确。
建议保持:
$http_host
这样后端就能接收到用户正在访问的正确域名。
网站可以打开但 CSS/JS 丢失
通常是因为 app 的 base path、asset path 构建错误,或者 rewrite 配置不正确。
如果是完整域名代理,URL Rewrite 部分建议留空。
14. 总结
aaPanel 的 Proxy Project 是一种简单方式,可以将 Node.js、Next.js、React、Laravel、API service 或 CMS 等内部应用,通过真实域名对外访问。
基本流程包括:
将 DNS 指向服务器
→ 创建 Proxy Project
→ 输入 Domain name
→ 输入后端 Target
→ 保持 Send Host 为 $http_host
→ 启用 Let's Encrypt SSL
→ 通过 HTTPS 访问网站
配置正确后,你可以在同一台服务器上运行多个不同的网站/app,每个 app 使用独立域名,并代理到不同的内部端口。