威联通(QNAP)NAS配置优化笔记
2021/10/25 计算机 次 0 条
一、硬盘单独休眠
1.查看:
mdadm -D /dev/md9 mdadm -D /dev/md13 hdparm -C /dev/sdc hdparm -C /dev/sda
2.建立脚本文件disconnect_internal_raid.sh:
#!/bin/sh echo "Disconnecting md9" mdadm /dev/md9 --fail /dev/sdc1 mdadm /dev/md9 --fail /dev/sda1 echo "Disconnecting md13" mdadm /dev/md13 --fail /dev/sdc4 mdadm /dev/md13 --fail /dev/sda4
3.建立脚本文件rebuild_internal_raid.sh:
#!/bin/sh echo "Disconnecting md9" mdadm /dev/md9 --re-add /dev/sdc1 mdadm /dev/md9 --re-add /dev/sda1 echo "Disconnecting md13" mdadm /dev/md13 --re-add /dev/sdc4 mdadm /dev/md13 --re-add /dev/sda4
4.修改计划任务/mnt/HDA_ROOT/.config/crontab:
00 02 * * * sh /share/homes/script/rebuild_internal_raid.sh 30 02 * * * sh /share/homes/script/disconnect_internal_raid.sh
5.修改完成之后执行:
crontab /etc/config/crontab
/etc/init.d/crond.sh restart
二、自定义开机启动脚本
1.加载/tmp/config到指定的加载点。不同NAS型号其加载点不同。对于Intel CPU的型号NAS,使用下面的加载指令:
mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
2.将要自动执行的作业任务写在/tmp/config/autorun.sh中,可以用vi或WinSCP的内部编辑器编写该文件:
#!/bin/sh echo "Disconnecting md9" mdadm /dev/md9 --fail /dev/sdc1 mdadm /dev/md9 --fail /dev/sda1 echo "Disconnecting md13" mdadm /dev/md13 --fail /dev/sdc4 mdadm /dev/md13 --fail /dev/sda4 ln -s /share/CACHEDEV1_DATA/.qpkg/Python3/src/bin/python3 /usr/local/bin/python3 ln -s /share/CACHEDEV1_DATA/.qpkg/Python3/src/bin/pip3 /usr/local/bin/pip3
3.设置/tmp/config/autorun.sh为可执行模式:
chmod +x /tmp/config/autorun.sh
4.卸载已装载的闪存分区(注意:此指令非常重要,必须执行)。
umount /tmp/config/autorun.sh
三、解决Jellyfin网页播放器ASS字幕中文方块的问题
1.下载字体文件:
https://github.com/jellyfin/jellyfin-web/files/4434292/noto.zip
2.用WinSCP连接到威联通NAS,将解压之后的字体上传到
/share/CACHEDEV1_DATA/.qpkg/jellyfin/jellyfin/bin/jellyfin-web/libraries/
3.编辑文件:/share/CACHEDEV1_DATA/.qpkg/jellyfin/jellyfin/bin/jellyfin-web/components/htmlvideoplayer/plugin.js
(jellyfin新升级到10.6.4之后,路径:/share/CACHEDEV1_DATA/.qpkg/jellyfin/jellyfin/bin/jellyfin-web/plugins/htmlVideoPlayer/plugin.js)
找到function renderWithSubtitlesOctopus这个函数,加入如下几行代码并将原来的几行代码注释掉:
var attachmentsFonts = attachments.map(function (i) {
return i.DeliveryUrl;
});
fonts: attachmentsFonts.concat(appRouter.baseUrl() + "/libraries/NotoSerifCJKsc-Medium.woff2"),
四、QNginx反向代理Jellyfin(启用https)
1.编辑/share/CACHEDEV1_DATA/.qpkg/QNginx/etc/nginx/nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl;
server_name nas.fairysoft.net;
set $jellyfin 127.0.0.1;
resolver 127.0.0.1 valid=30;
ssl_certificate /opt/QNginx/ssl/certs/fairysoft.net.crt;
ssl_certificate_key /opt/QNginx/ssl/certs/fairysoft.net.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location = / {
return 302 https://$host/web/;
}
location / {
proxy_pass http://$jellyfin: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 X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_buffering off;
}
location = /web/ {
proxy_pass http://$jellyfin:8096/web/index.html;
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 X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
location /socket {
proxy_pass http://$jellyfin:8096;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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 X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
}
}
2.重启QNginx
/etc/init.d/QNginx.sh restart