本教程以Alist为例。
如果你还没有安装 Nginx 和用于自动获取 SSL 证书的 Certbot,请先执行以下命令(以 Ubuntu/Debian 为例):
sudo apt update
sudo apt install nginx python3-certbot-nginx -y
第二步:配置 Nginx 反向代理
1.我们需要创建一个新的 Nginx 配置文件。假设你的域名是 alist.example.com。
创建配置文件:
sudo nano /etc/nginx/sites-available/alist
2.写入以下配置: 注意:这里先配置 80 端口,稍后 Certbot 会自动帮我们升级到 443 (HTTPS)。
server {
listen 80;
server_name alist.example.com; # 换成你的域名
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
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;
# 上传大文件所需的配置
client_max_body_size 0;
}
}
3.激活配置并重启:
sudo ln -s /etc/nginx/sites-available/alist /etc/nginx/sites-enabled/
sudo nginx -t # 检查语法是否正确
sudo systemctl restart nginx
第三步:获取 SSL 证书 (HTTPS)
使用 Let's Encrypt 提供的 Certbot,可以一键完成 SSL 部署和自动续期。
执行以下命令:
sudo certbot --nginx -d alist.example.com
过程中提示: 它会询问是否要将 HTTP 重定向到 HTTPS,建议选择 2: Redirect。
结果: Certbot 会自动修改你的 Nginx 配置文件,添加证书路径并开启 443 端口。
第四步:关键细节检查
为了确保 Alist 在反向代理下工作完美,请注意以下两点:
- client_max_body_size: 在上面的配置中,设置了
0。这是为了防止通过网页版 Alist 上传大文件时被 Nginx 拦截(默认只有 1MB)。 - Alist 后台设置: 登录 Alist 后台,进入 设置 -> 侧边栏 -> 全局,确保 站点地址 填写的是你带
https://的完整域名。
进阶提示:防火墙设置
如果访问不通,请检查服务器防火墙是否放行了 80 和 443 端口:
sudo ufw allow 'Nginx Full'
(如果要应用在WordPress上,将 location / 部分修改为如下内容:
1.修改 Nginx 配置文件
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; # 必须!告知 WP 当前是 HTTPS
proxy_pass http://127.0.0.1:8080; # 指向你的 WordPress 端口
# 允许上传大文件(如主题、插件、媒体文件)
client_max_body_size 100M;
}
为什么要加 X-Forwarded-Proto? 因为 Nginx 和用户之间是 HTTPS,但 Nginx 和 WordPress 之间是 HTTP。如果不传这个 Header,WordPress 会以为自己还在用 HTTP,从而导致网页资源加载错误或无限重定向。
2.测试并重启 Nginx
sudo nginx -t
sudo systemctl restart nginx
如果你已经能进入 WordPress 后台,请确保:
设置 (Settings) -> 常规 (General) WordPress 地址 (URL) 和站点地址 (URL)改为域名

Comments | NOTHING