本教程使用minio开源软件以及caddy前端进行s3搭建,该云可用于synology中cloudsync的同步任务以及hyperbackup的备份任务。
系统使用的是Centos8
以下是minio的官方配置指南:
https://docs.min.io/cn/minio-server-configuration-guide.html
安装及配置caddy
这边配置将caddy运行在80和443端口,并生成对应域名证书以供minio使用。
并将指定域名发送的流量转发到minio的工作端口(26900)。
有关于详细的caddy配置教程请网上自行搜索。
下载caddy
这边提供的是caddy v1.0.3
wget http://m2.zhugh.com:26512/test/caddy103.tar.gz
mkdir /usr/local/caddy /etc/caddy
tar -zxvf caddy103.tar.gz -C /usr/local/caddy/
配置caddy服务
vi /etc/systemd/system/caddy.service
[Unit]
Description=Caddy HTTP/2 web server
Documentation=https://caddyserver.com/docs
After=network.target
[Service]
User=caddy
Group=caddy
Environment=CADDYPATH=/var/lib/caddy
EnvironmentFile=-/etc/caddy/caddy.conf
ExecStartPre=/usr/local/caddy/caddy -conf /etc/caddy/caddy.conf -validate
ExecStart=/usr/local/caddy/caddy -conf /etc/caddy/caddy.conf -root /tmp -agree
ExecReload=/usr/bin/kill -USR1 $MAINPID
KillMode=mixed
KillSignal=SIGQUIT
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
mkdir -p /var/lib/caddy/acme /var/lib/caddy/locks /var/lib/caddy/ocsp
useradd -r -d /var/lib/caddy -s /sbin/nologin caddy
chown -R caddy:caddy /var/lib/caddy /var/lib/caddy/*
vi /etc/caddy/caddy.conf
其中s3.zhugh.com backup.s3.zhugh.com sync.s3.zhugh.com
分别为minio的工作域名、容器backup的工作域名、容器sync的工作域名
s3.zhugh.com backup.s3.zhugh.com sync.s3.zhugh.com {
proxy / https://localhost:26900 {
tls test@testmail.com
insecure_skip_verify
header_upstream X-Forwarded-Proto "https"
header_upstream X-Forwarded-Host {host}
header_upstream Host {host}
}
}
启动caddy服务
service caddy start
配置caddy开机自启
systemctl enable caddy
安装及配置minio
这边配置minio使用s3.zhugh.com访问,服务工作在26900端口,并配置使用容器backup和sync。
下载minio
wget http://m2.zhugh.com:26512/test/minio
chmod 755 minio
配置minio服务
mv minio /usr/local/bin/
vi /etc/default/minio
配置文件中的MINIO_VOLUMES是S3所用的存储路径
配置文件中的MINIO_OPTS是minio服务运行的端口
配置中的MINIO_ACCESS_KEY是登录minio使用的ACCESS_KEY
配置中的MINIO_SECRET_KEY是登录minio使用的SECRET_KEY
配置中的MINIO_DOMAIN是minio服务的外网域名地址
# Volume to be used for MinIO server.
MINIO_VOLUMES="/data"
# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :26900"
# Access Key of the server.
MINIO_ACCESS_KEY="test"
# Secret key of the server.
MINIO_SECRET_KEY="12345678"
# Virtual Host
MINIO_DOMAIN=s3.zhugh.com
vi /etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
User=root
Group=root
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
systemctl daemon-reload
cd .minio/certs/
这边crt和key的软连接地址需要按实际使用域名来修改:
ln -s /var/lib/caddy/acme/acme-v02.api.letsencrypt.org/sites/s3.zhugh.com/s3.zhugh.com.crt public.crt
ln -s /var/lib/caddy/acme/acme-v02.api.letsencrypt.org/sites/s3.zhugh.com/s3.zhugh.com.key private.key
启动minio服务
service minio start
配置minio开机自启
systemctl enable minio
外网域名配置
需要将外网域名s3.zhugh.com backup.s3.zhugh.com sync.s3.zhugh.com全部指向配置的这台设备的公网ip。
如果配置正常,访问caddy的配置域名可以看到以下界面:
建立对应的backup和sync容器后就可以使用cloudsync或者hyperbackup链接使用了:
注意事项
1.如果后期需要添加其他名称的容器,需要在caddy的转发域名配置文件以及外网域名解析中额外增加对应的记录,例如增加test容器,以s3.zhugh.com为例就需要在caddy的转发域名配置文件以及外网域名解析中额外test.s3.zhugh.com的解析。
2.如果需要将文件同步到容器的子文件夹中,需要先在ssh底层建立一个文件夹并且通过minio网页端上传一个文件到此子文件夹中,否则cloudsync会提示云端文件夹不存在。