使用宝塔为 AList 配置反向代理与 HTTPS

使用宝塔为 AList 配置反向代理与 HTTPS

使用宝塔为 AList 配置 HTTPS

用宝塔面板的 Nginx 给 AList 做反向代理,再为域名部署证书,就能通过 HTTPS 访问。关键是分清站点配置里的静态资源规则、安全规则和反向代理规则,不能一概删除。

配图记录的是 2023 年 4 月的面板界面。下面保留创建站点、检查配置、添加反代、部署证书和访问检查这五步,当前面板的入口名称可能略有不同。开始前确认 AList 已运行,域名已指向这台服务器,并备份现有站点配置。

1. 创建一个空白网站

在宝塔“网站”里添加站点,填写自己的域名。这个站点只承担反向代理,示例不创建 FTP 和数据库,PHP 版本选择“纯静态”。截图里的域名是演示环境,实际操作应替换成自己的域名。

宝塔添加纯静态站点的历史界面

2. 打开设置,检查配置文件

进入站点设置的“配置文件”。先找到禁止访问敏感文件的规则,再检查处理图片、JavaScript 和 CSS 的静态缓存规则。

Nginx 敏感文件访问防护规则,应该保留
红框用于定位规则;涉及 .user.ini、.git、.env 等敏感路径的防护不要照旧图删掉。
Nginx 图片及 JavaScript、CSS 静态资源规则

下面是历史记录里列出的三条待处理位置。它只是截断的定位清单,含 Markdown 转义,并不是可以直接粘贴的 Nginx 配置:

- location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md
- location ~ .\*\.(gif|jpg|jpeg|png|bmp|swf)$
- location ~ .\*\.(js|css)?$

第一项涉及 .user.ini、.htaccess、.git、.svn、.project 等路径,应保留其拒绝访问措施。第二、三项是图片和 JS/CSS 的正则 location:在专门反代 AList 的站点里,它们可能优先于普通 location / 匹配,把资源请求交给本地空目录,造成图片或样式 404。确认确实冲突后,只处理相应的完整静态资源块,或把它们明确交给上游;不要把敏感路径防护、证书验证规则和其他站点必需配置一起删除。

3. 添加 AList 反向代理

在这个站点的 server 配置块中,保留安全规则,并加入下面的 location /。如果已经有同名 location,需要合并调整,不能重复粘贴。示例传递客户端地址、协议、Host 和 Range 请求头,以便上游获取请求信息及处理分段下载。

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5244; # AList 与 Nginx 在同一台机器时保留此地址
    # 历史示例的上传请求体上限;请根据实际需要调整
    client_max_body_size 20000m;
}

如果 AList 与 Nginx 在同一台服务器,127.0.0.1 就是正确的回环地址,无需换成公网 IP。只有服务部署在其他受控主机或容器网络里时,才改成相应的可信上游地址和端口;后端 5244 端口不必直接对公网开放。站点应只接受已绑定的域名,默认虚拟主机拒绝无关 Host,不把任意请求头当作可信站点信息。

20000m 是历史示例的请求体大小上限,并非必需值,也不保证所有网盘都允许同样大小的文件。按实际上传需求、磁盘空间和上游限制设置。保存前做 Nginx 配置检查,确认通过后再重载;有错误时先恢复备份。

在宝塔站点配置中加入反向代理的历史示例
截图中的上游地址已遮挡;同机部署按正文使用 127.0.0.1:5244。

4. 申请并部署证书

进入站点“SSL”设置,选择可用的免费证书入口(如 Let’s Encrypt),选中需要保护的域名并完成文件验证或 DNS 验证,然后申请、部署证书。文件验证需要验证路径能够正常访问,不能被反代或重定向错误截走;DNS 验证按面板要求配置域名记录。公网访问 HTTPS 还需要正确开放 443 端口。已有证书也可以按面板要求导入对应证书链与私钥。

先确认 https://自己的域名 能正常打开,再决定启用“强制 HTTPS”,让 HTTP 请求跳转到 HTTPS。不启用强制跳转时,HTTPS 地址仍可使用,但用户从 HTTP 入口访问不会自动变成加密连接。检查自动续期是否正常,避免只部署一次就不再维护。不要公开证书私钥。

宝塔 SSL 设置,私钥内容已完整遮挡

5. 访问并检查

用域名打开 AList,确认浏览器没有证书错误,登录页面、静态资源、下载和需要的上传功能都正常。若重定向循环,检查 HTTPS 识别与代理头;若文件或样式 404,回到第二步核对 location 匹配。请按自己的实际环境完成以上检查,本文不代表你的环境已经通过测试。

继续安装流程可参照 AList 的官方安装文档;反代细节可查 AList 反向代理说明、Nginx location 文档和宝塔网站 SSL 证书部署。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容