记录搭建过程,用于后期重建使用

在“Alist管理”中的“存储”中可以添加本机存储等驱动,具体方法可以参考官方文档。https://alistgo.com/zh/guide/

如果不需要设置域名,则可以使用IP地址的方式进行访问了。

首先,去你的域名服务商(像阿里云、腾讯云)控制台,添加一条 A 记录,把你想用的那个二级域名(比如 alist.yourdomain.com)指向你服务器的公网 IP 地址。建议等解析生效了再进行下一步。
「主机标识名」: 填一个英文标识,比如 alist。
「绑定域名」: 填上你解析好的那个域名,比如 alist.yourdomain.com。
网站根目录: AMH 会自动生成,保持默认就行。这个目录不是给 Alist 用的,但必须得有,只是用来设置域名转发。

可以直接使用AMH自带的方式“创建AMSSI网站证书”,使用一键自动配置应用即可。

要把 Alist 从 IP 访问改成用域名访问,核心思路是用 Nginx 做一个反向代理,把你域名上的请求转发给 Alist 程序。
实现此操作,需要设置 "域名.conf" 文件(如果设置了SSL,同时还需要设置 "域名-https.conf" 文件),此文件一般存放在如下目录:
1.需要找到你的环境名称:如果你在面板中为网站创建了名为 lnmp01 的环境,那么路径就是 /home/wwwroot/lnmp01/vhost/。 2.对于AMH 6.0及以上版本,也可能在这里:/usr/local/nginx-generic-1.20/conf/vhost/
配置成如下:
server
{
listen 443 ssl http2 ; #listen end
server_name alist.xxx.com; #server_name end
index index.html index.htm index.php; #index end
set $subdomain '';
root /home/wwwroot/lnmp01/domain/alist/web$subdomain;
include /home/wwwroot/lnmp01/rewrite/alist.conf; #rewrite end
# ===== 新增:让 Let's Encrypt 验证目录走本地文件,不代理 =====
location ^~ /.well-known/ {
root /home/wwwroot/lnmp01/domain/alist/web;
allow all;
}
# ===== 新增结束 =====
# ===== 反向代理到 Alist =====
location / {
proxy_pass http://127.0.0.100:5244/;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# ===== 反向代理结束 =====
#error_page
error_page 400 /ErrorPages/400.html;
error_page 403 /ErrorPages/403.html;
error_page 404 /ErrorPages/404.html;
error_page 502 /ErrorPages/502.html;
location ~ /ErrorPages/(400|401|403|404|405|502|503)\.html$
{
root /home/wwwroot/lnmp01/domain/alist/web;
}
# 注释掉 PHP 处理(因为已经用反向代理,不需要 PHP)
#location ~ .*\.php$
#{
# fastcgi_pass unix:/tmp/php-cgi-lnmp01-alist.sock;
# fastcgi_index index.php;
# include fcgi.conf;
# fastcgi_param DOCUMENT_ROOT /home/wwwroot/lnmp01/domain/alist/web$subdomain;
# fastcgi_param SCRIPT_FILENAME /home/wwwroot/lnmp01/domain/alist/web$subdomain$fastcgi_script_name;
#}
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
#{
# expires 30d;
#}
#location ~ .*\.(js|css)$
#{
# expires 12h;
#}
access_log off; #access_log end
error_log /dev/null; #error_log end
ssl_certificate_key /home/wwwroot/lnmp01/etc/alist-lessl-ssl/alist-lessl.key;
ssl_certificate /home/wwwroot/lnmp01/etc/alist-lessl-ssl/alist-lessl.crt;
}保存配置后,记得在 AMH 面板重启一下 Nginx 让配置生效。
注意屏蔽的location规则,这些规则会拦截 .js、.css 等文件请求,并尝试从本地 root 目录(/home/wwwroot/lnmp01/domain/alist/web)读取,而不是转发给 Alist 后端。因为本地目录下没有这些文件,所以返回 404 → 页面空白。
为了让 Alist 内部生成的链接都使用你的新域名,还需要修改 Alist 的配置文件。
编辑配置文件: Alist 的配置文件一般在 data/config.json。
修改 site_url: 找到 site_url 这一项,把它改成 "http://alist.yourdomain.com"(如果配了 HTTPS 就用 https)。
如果你在 AMH 里给这个站点配置了 SSL 证书,那 site_url 也记得对应改成 https:// 的。
{
"force": false,
"site_url": "https://alist.xxx.com",
"cdn": "",
"jwt_secret": "-----------",
"token_expires_in": 48,
"database": {
"type": "sqlite3",
"host": "",
"port": 0,
"user": "",
"password": "",
"name": "",
"db_file": "/home/usrdata/alist/data.db",
"table_prefix": "x_",
"ssl_mode": "",
"dsn": ""
},
"meilisearch": {
"host": "http://localhost:7700",
"api_key": "",
"index_prefix": ""
},
"scheme": {
"address": "127.0.0.100",
"http_port": 5244,
"https_port": -1,
"force_https": false,
"cert_file": "",
"key_file": "",
"unix_file": "",
"unix_file_perm": "",
"enable_h2c": false
},
"temp_dir": "/home/usrdata/alist/temp",
"bleve_dir": "/home/usrdata/alist/bleve",
"dist_dir": "",
"log": {
"enable": true,
"name": "/home/usrdata/alist/log/log.log",
"max_size": 50,
"max_backups": 30,
"max_age": 28,
"compress": false
},
"delayed_start": 0,
"max_connections": 0,
"max_concurrency": 64,
"tls_insecure_skip_verify": false,
"tasks": {
"download": {
"workers": 5,
"max_retry": 1,
"task_persistant": false
},
"transfer": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"upload": {
"workers": 5,
"max_retry": 0,
"task_persistant": false
},
"copy": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"decompress": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"decompress_upload": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"s3_transition": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"allow_retry_canceled": false
},
"cors": {
"allow_origins": [
"*"
],
"allow_methods": [
"*"
],
"allow_headers": [
"*"
]
},
"s3": {
"enable": false,
"port": 5246,
"ssl": false
},
"ftp": {
"enable": false,
"listen": ":5221",
"find_pasv_port_attempts": 50,
"active_transfer_port_non_20": false,
"idle_timeout": 900,
"connection_timeout": 30,
"disable_active_mode": false,
"default_transfer_binary": false,
"enable_active_conn_ip_check": true,
"enable_pasv_conn_ip_check": true
},
"sftp": {
"enable": false,
"listen": ":5222"
},
"last_launched_version": "v3.59.0"
}修改配置文件后,必须重启 Alist 服务,才能使修改生效。
现在设置完成,可以使用域名访问了。