威联通(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