Chevereto图床搭建
背景
最近新搭建的网站的带宽很小,如果直接访问是无法满足即时响应的,因此想是否能够将其它的静态资源分布到几台服务器上,以减少对同一台服务器的响应要求,目前发现网站中最常造成延时的是网页的封面,所以打算利用闲置的服务器搭建个人图床来使用。
搭建图床基于Chevereto,它是一款开源免费的图床程序(也提供收费版),允许自建图片托管网站,支持多种方式搭建(docker、手工搭建),本文以手动搭建为例
搭建教程
更新系统
1
sudo apt update && sudo apt upgrade
安装nginx
1
sudo apt install nginx
安装mysql数据库,并且创建对应的用户
1
2
3
4
5
6
7
8
9
10
11
12
13
148.0版本以后的创建用户时还不大会,所以建议还是8.0版本以前的较好
sudo apt install mysql-server
登录mysql,注意使用自己的密码
sudo mysql -uuser -ppasswd
官方给的8.0版本的配置用户权限的方式,而我用的是8.0版本以前的,此处做记录
create database [数据库名] charset=utf8;
grant all privileges on [数据库名].* to [用户名@localhost] identified by '密码';
(参考)以下是官方给的8.0版本数据库创建chevereto的账户和密码,并且创建好chevereto的数据库以备用
CREATE DATABASE chevereto;
CREATE USER 'chevereto' IDENTIFIED BY 'enter_a_password_here';
GRANT ALL ON chevereto.* TO 'chevereto' IDENTIFIED BY 'enter_a_password_here';配置好以后,运行如下命令以保护mysql
1
2这块也不是很懂
sudo mysql_secure_installation期间需要回答如下问题,需注意:
1
2
3
4
5Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y安装php,并且配置相关信息
1
2
3
4
5
6
7
8
9
10
11此处是官方提供的
sudo apt install php-fpm php-zip php-curl php-mbstring php-gd php-mysql
创建网站的配置文件
sudo vim /etc/php/7.2/fpm/conf.d/chevereto.ini
在文件中配置如下信息,具体含义如英文描述:
upload_max_filesize = 20M;
post_max_size = 20M;
max_execution_time = 30;
memory_limit = 512M;配置网站
1
2
3
4
5
6
7
8
9创建网站根目录,且做好相关配置
sudo mkdir Website
sudo chown [文件夹所属人]:[文件夹所属组] Website
删除nginx默认配置
sudo rm -f /etc/nginx/sites-enabled/default
创建nginx中网站信息的新配置项
sudo vim /etc/nginx/sites-available/default.conf将default.conf文件的内容修改为如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56此处是官方给的,后面应该还是需要配置https和cdn加速的
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com; # 协商自己的用户名
root /var/www/html/example.com/public_html; # 配置自己网站所在的路径
index index.html;
# 官方给了开启https的方式是通过安装新的插件的方式,此处我就直接通过手动方式添加证书了,配置详情如下
ssl on;
ssl_certificate xxx.crt; #填写证书crt所在的位置
ssl_certificate_key xxx.key; #填写证书key所在的位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #按照这个套件配置
ssl_prefer_server_ciphers on;
# Context limits
client_max_body_size 20M;
# Disable access to sensitive files
location ~* (app|content|lib)/.*\.(po|php|lock|sql)$ {
deny all;
}
# Image not found replacement
location ~ \.(jpe?g|png|gif|webp)$ {
log_not_found off;
error_page 404 /content/images/system/default/404.gif;
}
# CORS header (avoids font rendering issues)
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
add_header Access-Control-Allow-Origin "*";
}
# Pretty URLs
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$query_string;
}
location ~* \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
因为还需要配置重定向到https环境下,故重写一个重定向
server {
listen 80;
server_name www.xxx.com; # http的域名
rewrite ^(.*)$ https://${server_name}$1 permanent; # $1表示正则匹配的第一个括号中的内容
}创建网站符号连接:
1
2这个不清楚有啥作用,但是按道理不配置应该也是可以的
sudo ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf重启nginx和php
1
2sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx安装Chevereto
1
2
3
4
5
6
7
8进入网站根目录,然后获取安装文件
cd Website
wget https://chevereto.com/download/file/installer
将下载的installer文件修改为installer.php
mv installer installer.php
然后需要将Website(网站根目录)的权限设置为777,这点很重要,不然会一直提示没有写权限
chmod 777 -R ./Website弄完以后进入前台(http://your_domin_or_ip/installer.php)开始正常点击安装即可(忽略打开安装页面的警告)
安装完以后的配置,先登录安装时配置的管理员账户
设置网页语言:【setting】
其它配置:【仪表盘】–【设置】
禁止用户注册:【仪表盘】–【设置】–>【用户】–>【开放注册】设置为禁用
配置主题:【仪表盘】–>【设置】–>【主题】
禁止游客上传图:【仪表盘】–>【设置】–>【图片上传】–>【访客(不需注册)上传】设置为禁止
配置主页展示:【仪表盘】–>【设置】–>【主页】
配置邮件通知:【仪表盘】–>【设置】–>【电子邮件】
配置邮件通知:【仪表盘】–>【设置】–>【防洪保护】
然后通过CloudFlare配置cdn代理加速,这块可以参考【CloudFlare配置cdn】文章
知识点
由于搭建完以后发现,国外的服务器+CloudFlare的访问速度确实 不敢恭维,其加速效果还不如是sm.ms的加载速度,所以痛定思痛,还是将背景图做了压缩处理,重新上传到sm.ms网站上,此处记录一个免费的压缩网站:https://www.yasubit.com/,其压缩效果很好,不需要下载安装。
总结常用的免费图床,不过速度都不是很好
路过图床:https://imgchr.com/
sm.ms图床:https://sm.ms/
公益图床:https://sbimg.cn