经常会遇到从多个客户机同步文件到服务器的场景,经过测试与验证发现nginx+ssl+rclone架构实现起来比较容易。
核心步骤
- 下载nginx/rclone;
- 生成自签发ssl证书(https://www.lddgo.net/encrypt/ssl);
- 配置nginx,配置ssl+basic auth;
- rclone cli添加或conf文件配置;
- 同步验证;
经验总结
- rclone无法配置定时同步,需要通过linux crontab或者windows定时任务实现定时同步;
- rclone sync http源时,可以同步本目录、子目录、同步后文件名正确;
- nginx.conf 可以指定root目录为中文文件夹;
细节步骤
1、nginx配置
nginx配置文件见下,添加了daemon off;便于前台执行方便测试:
worker_processes 1;
daemon off;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
autoindex on; # 显示目录
autoindex_exact_size on;# 显示文件大小
autoindex_localtime on;# 显示文件时间
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 59580 ssl;
server_name localhost;
root D:\360极速浏览器X下载;
auth_basic "basic auth";
auth_basic_user_file ../ssl/basic_auth.pwd;
ssl_certificate ../ssl/ssl.pem;
ssl_certificate_key ../ssl/ssl.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}
}
以上配置文件中的ssl.key、ssl.pem、basic_auth.pwd文件均为各类网站在线生成的。
2、rclone
rclone 添加源配置命令见下,通过以下命令添加名称为lzha的HTTPS源。
rclone config --config="rclone.conf"
rclone立即同步命令,忽略ssl证书:
rclone sync lzha: ./lzhalocal --no-check-certificate --progress --config="rclone.conf"
rclone自动生成的rclone.conf配置文件内容:
[lzha]
type = http
url = https://user:password@192.168.1.202:59580/