🤖🤖-摘要:
本文介绍了如何利用AList,云盘和LskyPro搭建大容量图床,避免了高额图床管理费,增加了访问速度,图片自我管理。提及了搭建过程,包括环境准备,AList和WebDAV服务的搭建,以及Lsky的安装和配置。

概述

兰空官网:

兰空图床可以帮您保管大量无处安放的图片,数据可以自由选择储存驱动,支持主流第三方储存。
作为一个助手,它不仅可以将您把图片以指定规则存放在指定位置,还有更多强大的功能来帮助您处理这些图片。

AList:

一个支持多种存储,支持网页浏览和 WebDAV 的文件列表程序
支持多个存储提供商,包括本地存储、阿里云盘、OneDrive、Google Drive 等,且易于拓展
支持所有 WebDAV 存储,这是一种用于访问文件的标准

云盘:
本文以天翼云盘为例, 免费 30 GB 的空间, 支持 WebDAV

自建图床
Snipaste_2023-06-30_19-51-10.png

特点

  • 无需缴高额图床管理费
  • 访问速度取决于自建服务器的配置
  • 图片自治, 自己管理图片, 不用担心图床跑路或被墙

搭建

前提:
需要公网服务器和已备案域名
服务器安装宝塔, Docker, Nginx

1. AList

使用 Docker 安装

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest

注意: 端口号是: 5244, 如果使用云服务器如阿里云, 腾讯云等, 记得开放此端口.

2. WebDAV 服务

  • 注册登录天翼云盘
  • 在个人网盘中创建 Pics 文件夹
  • 在 AList 中将该文件夹挂载到路径 /image (在 AList 显示的路径)

参考配置:

参考文档

3. Lsky

安装

# 创建容器并启动(宿主机4003端口可自行更改)  
sudo docker run -d --name lskypro --restart unless-stopped -p 4003:80 -v /data/lskypro:/var/www/html coldpig/lskypro-docker:latest

Nginx 配置

注意: 如果在 Nginx 配置中开启了 HTTPS ,需要执行以下命令修改图床项目源码,否则前端页面布局将被打乱

sudo docker exec -it lskypro sed -i '32 a \\\Illuminate\\Support\\Facades\\URL::forceScheme('"'"'https'"'"');' /var/www/html/app/Providers/AppServiceProvider.php

假设图床服务的域名为 image.domain.com,AList 部署在本地端口 5244,在 nginx.conf 中添加如下配置项:

server
{
listen 80;
listen 443 ssl http2;
server_name image.domain.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/image.domain.com;

#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/image.domain.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/image.domain.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;

#SSL-END

#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END

#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-00.conf;
#PHP-INFO-END

#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/image.domain.com.conf;
#REWRITE-END

#禁止访问的文件或目录
# 转发图床服务请求
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;
client_max_body_size 20000m;
# 转发端口 4003 与上面设定的宿主机端口保持一致
proxy_pass http://IP:4003;
proxy_read_timeout 600s;

}
# 转发 AList 图片直链访问请求
location /img {
proxy_pass http://IP:5244/d/image;
proxy_read_timeout 600s;
}

#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
access_log /www/wwwlogs/image.domain.com.log;
error_log /www/wwwlogs/image.domain.com.error.log;
}

Lsky 数据库配置

以上步骤完成后,浏览器访问图床服务域名可进入如下图所示的配置页面。配置页面将引导我们设置数据库服务,为了减轻工作量,我们直接使用本地 SQLite 数据库,数据库路径留空即可(将自动在服务根目录的 database 目录下创建 database.sqlite 文件),同时需要设定管理员邮箱和登录密码。

设置存储策略

参考配置:

默认存储策略为本地存储,为了不占用服务器空间,我们这里使用 AList 提供的 WebDAV 服务创建一个新的存储策略,配置项如表所示,其中访问域名即为图片直链对应的域名和路径。

注意: 设置 WebDAV 为默认存储策略