介绍
近日在 https://github.com/alist-org/alist/discussions/6680 看到一个讨论,其中提及到了 alist 前后端分离的用法,个人测试了一下,写了个部署教程,同时也概括下优缺点和使用方面。
优点 | 缺点 |
---|---|
仅个人作 302 下载使用,费用低 | 上传流量经过函数,流量费用高 |
前后端分离,部署方便 | 由于阿里云函数限制为单线程,冷启动速度慢 |
无需域名 | 不支持 webdav |
提醒:后端还是收费的,只是适合那些没有固定服务器且一年访问次数不多的用户
后端部分
由于本人只注册了阿里云,因此使用阿里云演示,讨论中提及的腾讯云请自行测试。
- 前往 https://github.com/alist-org/alist/releases 下载 linux-amd64 架构二进制文件并解压出来(需要解压两次)
- 登录进入 https://fcnext.console.aliyun.com/ 界面
- 选择你需要部署的地区(在顶部的工作台旁边选择),如果只有国内网盘可以选择国内,国外可以选择香港;切换为
函数计算3.0
(高亮字体显示的按钮),2.0 的操作一样但是设置较为分散要自己寻找 - 左侧进入 函数 → 创建函数 → web 函数:
- 名称随意
- 运行环境 debian10
- 上传二进制文件,
- 启动命令
alist server
, - 监听端口 5244;
- 高级设置中规格方案按照自己的需求配置,个人使用的是 0.1 和 256
- 高级设置中的单实例并发度拉到 200
- 函数角色创建一个默认角色即可
- alist 环境变量优先级高于配置,但是本人偏向使用单一配置文件
- 进入函数,先来到代码界面,点击 terminal 的 new terminal,运行
alist server
会得到 data 文件夹,此时使用 crtl+c 停止运行即可 - 修改 data 里的 config.json,个人使用 mysql 方便迁移,alist 也支持 postgres,如果使用 sqllite 则需要挂载 nas 或者 oss 进行持久化,在步骤 9 中提及
"database": {
"type": "mysql",
"host": "主机名",
"port": 3306,
"user": "用户名",
"password": "密码",
"name": "数据库名",
"db_file": "data/data.db",
"table_prefix": "x_",
"ssl_mode": "",
"dsn": ""
},
...
"delayed_start": 1,
- 进入到代码标签旁边的 配置 →
触发器
,复制公网访问地址即可,如果需要绑定域名请自行探索 - 解决加载时间过长的问题,二选一即可
- 仍然需要等待半分钟左右:第 7 步的
触发器
下面有个健康检查
,分别填入/ping 0 1 1 3 7
- 需要更多费用:第 7 步的触发器下面有个
预留实例
,创建预留实例数为 1,我的配置下它估算每小时 0.01,你也可以自行使用定时伸缩来实现夜间 0 预留仅白天预留 8 小时,估算大概每年 30 元
- 仍然需要等待半分钟左右:第 7 步的
- 此步骤介绍 sqlite 的持久化,使用云数据库可跳过。在
触发器
的下面有个存储
标签。二选一即可,完成下面操作后需要更改运行时
的启动命令为/mnt/app/alist server
,同时建议是已有配置上传到 oss 或 nas。- oss 方式:创建一个 oss bucket(私有读写,创建请自行搜索),选择 bucket,bucket 子目录看你的 oss 结构填写,函数本地目录填入
/mnt/app
- nas 方式:此方式如果不具有同区域 vps 不建议使用,过于麻烦,在这里只是提及不做介绍,感兴趣自行搜索。
- oss 方式:创建一个 oss bucket(私有读写,创建请自行搜索),选择 bucket,bucket 子目录看你的 oss 结构填写,函数本地目录填入
前端部分
使用 cloudflare 部署
- fork https://github.com/alist-org/alist-web 项目
- 修改
api: undefined,
为api: "后端教程中第7步的地址",
- 创建 cloudflare page,选择你 fork 的项目仓库
- 构建命令:npm run build
- 构建输出目录:/dist
优点 | 缺点 |
---|---|
免费,无需域名 | 语言只能为英文,无法在 alist 中自定义 head body |
编译文件部署
使用阿里云 oss 演示,其他支持 静态页面
的对象存储一样可以。
- 下载 https://github.com/alist-org/alist-web/releases
- 解压,更改
api: undefined,
为api: "后端教程中第7步的地址",
上传到对象储存(注意需要 index.html 在 oss 根目录下) - 进入
bucket配置
→域名管理
绑定你的域名 - 进入
数据管理
→静态页面
设置默认首页为 index.html
优点 | 缺点 |
---|---|
香港地区免备案,国内访问快速 | 国内区域需备案,需要收费 |