vGo.codes

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
Awww服务器 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 nameyourdomain.com
Target typeURL address
Targethttp://127.0.0.1:3000
Send Host$http_host
URL Rewrite不需要时留空
Remarkyourdomain.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 使用独立域名,并代理到不同的内部端口。