Tony's Blog - 古人誠不我欺 - 2023年11月 https://www.iyiy.de/2023/11/ 係咁先,得閑飲茶! rclone挂载Google Drive之emby优化 https://www.iyiy.de/166.html 2023-11-22T01:09:00+08:00 安装fuse3apt install fuse3创建挂载目录mkdir /home/gd2/gd添加挂载守护进程cat > /etc/systemd/system/gd.service <<EOF [Unit] Description=Rclone AssertPathIsDirectory=/home/gd2/gd After=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount gd1: /home/gd2/gd \ --use-mmap \ --umask 000 \ --default-permissions \ --no-check-certificate --allow-other \ --allow-non-empty \ --dir-cache-time 24h \ --cache-dir=/home/cache \ --vfs-cache-mode full \ --buffer-size 256M \ --vfs-read-ahead 512M \ --vfs-read-chunk-size 32M \ --vfs-read-chunk-size-limit 128M \ --vfs-cache-max-size 100G \ --vfs-cache-min-free-space 30G \ --low-level-retries 200 \ --config /root/.config/rclone/rclone.conf ExecStop=/bin/fusermount -qzu /home/gd2/gd Restart=on-abort User=root [Install] WantedBy=default.target EOF启动服务systemctl enable --now gd && systemctl status gd元数据和图片放在网盘上 加载速度会比放在本地慢一些 所以我们可以使用OverlayFS 实现图片和元数据文件储存到本地OverlayFS 是 Linux 的一个文件系统,用途很广泛,比如 openwrt、docker 的文件系统就基于这个。简单讲一下他的作用。OverlayFS 可以多个目录进行合并成一个新的目录,比如a、b两个目录里分别有 1.mp4 和 1.nfo 文件,那么他们合并成的新目录就同时包含了1.mp4和1.nfo两个文件。另外 OverlayFS 也有层级的概念,如果a、b目录有同名的文件,那么更高层级的目录的文件会优先被访问。引用自rclone挂载Google群友盘 + OverlayFS + tmm + kodi打造家庭媒体中心创建必要目录根据自己实际情况更改mkdir /home/gd-upper /home/gd-work /home/gdupper:作为上层目录,对谷歌云的读写都会保存到这里,而不会真正写入谷歌云的挂载点work: 存储临时文件gd: 合并出的新目录*挂载 OverlayFSmount -t overlay overlay -o lowerdir=/home/gd2/gd,upperdir=/home/gd-upper,workdir=/home/gd-work /home/gdlowerdir=/home/gd:代表底层目录,写操作不会实际写到这里,读操作优先读取上层目录,读不到的才会读这里(比如视频文件)upperdir=/home/gd-upper:代表上层目录,读写优先对这里操作,会保存nfo、poster等文件workdir=/home/gd-work:临时目录,系统需要的,我们不用管他的作用/home/gd2:合并出的新目录,我们后续只对他进行访问*复制元数据/图片到本地cat > emby.txt <<EOF + *.jpg + *.png + *.nfo - * EOF假设EMBY文件放在Google Drive根目录的EMBY目录上rclone copy -P gd:EMBY /home/gd-upper/EMBY --filter-from emby.txt --transfers=10020250126更新最近发现使用OverlayFS在处理大文件的时候 经常会导致某些目录无法访问 遂改用MergerFS替代mergerfs -o cache.files=off,dropcacheonclose=false,category.create=mfs /home/gd2/gd=RO:/home/gd2/gd-upper=RW /home/gdsystemd守护进程[Unit] Description=mergerfs /home/gd service After=local-fs.target network.target [Service] Type=simple KillMode=none ExecStartPre=/bin/sleep 15 ExecStart=/usr/bin/mergerfs \ -f \ -o cache.files=off \ -o category.create=mfs \ -o dropcacheonclose=false \ /home/gd2/gd=RO:/home/gd2/gd-upper=RW \ /home/gd #ExecStartPost=/usr/bin/docker start nas-tools emby ExecStop=/bin/fusermount -uz /home/gd Restart=on-failure [Install] WantedBy=default.targetNGINX反向代理 #PROXY-START/ client_max_body_size 5000M; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for'; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions; proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key; proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version; proxy_cache off; proxy_redirect off; proxy_buffering off; location / { proxy_pass http://127.0.0.1:8096; proxy_set_header X-Forwarded-For $remote_addr; proxy_ssl_verify off; proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } location ~* \.(gif|png|jpg|css|js|woff|woff2)$ { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; 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; expires 12h;#图片缓存浏览器过期时间 } #PROXY-END/ 记录下Caddy反代CloudFlare网站和替换文本 https://www.iyiy.de/165.html 2023-11-02T01:02:00+08:00 安装caddypacman -S caddyDebian安装apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list apt update apt install caddy添加 http.handlers.replace_response模块caddy add-package github.com/caddyserver/replace-response检查http.handlers.replace_response模块是否安装完成[root@archlinux ~]# caddy list-modules | grep http.handlers.replace_response http.handlers.replace_responseCaddy目录[root@archlinux caddy]# tree . ├── Caddyfile └── conf.d修改默认 Caddyfile配置文件 注册 replace指令nano /etc/caddy/Caddyfile{ order replace after encode }添加网站配置nano /etc/caddy/conf.d/example.comexample.com { reverse_proxy https://example.com { header_up Host {upstream_hostport} header_up Accept-Encoding identity } replace aaa bbb }重载caddy配置systemctl reload caddy参考https://caddyserver.com/docs/caddyfile/directives/reverse_proxyhttps://github.com/caddyserver/replace-response