前言
图床是用于存放图片的空间,基于图床可以很方便的实现图片分享,便于日常使用和前端开发。
兰空图床 · Lsky Pro 是一款基于 PHP 开发的开源图床项目,界面美观且易于操作,目前支持本地存储
、AWS S3
、阿里云 OSS
、腾讯云 COS
、七牛云
、又拍云
、SFTP
、FTP
、WebDAV
、Minio
等多类存储服务。
部署步骤
注意:在部署开始前你应该拥有一台公网服务器,另外,以下步骤依赖于 Nginx 和 AList,请提前安装相关依赖并配置,本文档只对 LskyPro 图床的搭建步骤和必要的注意事项进行介绍。
仅适用于 Linux amd64/arm64 平台。
自动安装:curl -fsSL "https://alist.nn.ci/v3.sh" -o v3.sh && bash v3.sh
手动运行
打开 AList Release 下载待部署系统对应的文件。最新版的前端已经和后端打包好了,不用再下载前端文件了。
# 解压下载的文件,得到可执行文件:
tar -zxvf alist-xxxx.tar.gz
# 授予程序执行权限:
chmod +x alist
# 运行程序
./alist server
# 获得管理员信息 以下两个不同版本,新版本也有随机生成和手动设置
# 低于v3.25.0版本
./alist admin
# 高于v3.25.0版本
# 随机生成一个密码
./alist admin random
# 手动设置一个密码 `NEW_PASSWORD`是指你需要设置的密码
./alist admin set NEW_PASSWORD
守护进程
使用任意方式编辑 /usr/lib/systemd/system/alist.service
并添加如下内容,其中 path_alist 为 AList 所在的路径
[Unit]
Description=alist
After=network.target
[Service]
Type=simple
WorkingDirectory=path_alist
ExecStart=path_alist/alist server
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后,执行 systemctl daemon-reload 重载配置,现在你可以使用这些命令来管理程序:
- 启动:
systemctl start alist
- 关闭:
systemctl stop alist
- 配置开机自启:
systemctl enable alist
- 取消开机自启:
systemctl disable alist
- 状态:
systemctl status alist
- 重启:
systemctl restart alist
配置LskyPro
以上步骤完成后,浏览器访问图床服务域名可进入如下图所示的配置页面。配置页面将引导我们设置数据库服务,为了减轻工作量,我们直接使用本地 SQLite 数据库,数据库路径留空即可(将自动在服务根目录的 database
目录下创建 database.sqlite
文件),同时需要设定管理员邮箱和登录密码。
设置存储策略
登录管理员账户,点击侧边栏的 “存储策略” 进入图片文件存储的相关配置,创建一个新的存储策略。
默认存储策略为本地存储,为了不占用服务器空间,我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。
配置项 | 配置内容 | 说明 |
---|---|---|
储存策略 | WebDAV | |
访问域名 | https://image.xxxxx.cn/img | 记得添加/img 后缀,与 Nginx 配置保持一致 |
URL Queries | 留空,无需填写 | |
连接地址 | https://alist.demo.cn/ | alist.demo.cn 为 AList 服务访问域名 |
认证方式 | Basic | 务必选择 Basic,否则连接失败 |
路径前缀 | /dav/image | 与 AList 存储配置保持一致 |
用户名 | ${username} | AList WebDAV 用户名(用户需有对image 目录的 WebDAV 读写权限) |
密码 | ${password} | AList WebDAV 密码(用户需有对image 目录的 WebDAV 读写权限) |
设置 WebDAV 为默认存储策略
WebDAV 存储策略添加后可以将默认本地存储策略删除,防止用户将图片上传至本地服务器。
设置反向代理
location ^~ /i/ {
proxy_pass 您的 Alist 直链目录; # 无斜杠保留完整URI
proxy_hide_header Content-Type;
# 通过 if 设置变量
set $ct "image/jpeg"; # 默认值
if ($uri ~* \.png$) {
set $ct "image/png";
}
if ($uri ~* \.gif$) {
set $ct "image/gif";
}
if ($uri ~* \.webp$) {
set $ct "image/webp";
}
add_header Content-Type $ct always;
proxy_hide_header Content-Disposition;
add_header Content-Disposition "inline";
proxy_read_timeout 600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
}
注意:Alist不要开启签名
开启会出现401错误,要验证证书,否则无法访问图片地址
设置-全局 签名所有 OFF
部分存储需要开启WEB代理选择本地代理,否则图片会触发下载
- 1 网站名称:大方博客
- 2 网站网址:blog.mmp.cc
- 3 本站部分内容来源于网络,仅供学习与参考。如有侵权,请及时联系站长处理。
- 4 本站资源和内容不代表本站立场,亦不对其真实性负责。
- 5 本站严禁发布或转载违法信息。如发现违规内容,请向站长举报。
- 6 若本站附件或教程资源失效,请留言或联系站长更新。
暂无评论内容