愚蠢的地球人

威联通(QNAP)NAS配置优化笔记

一、硬盘单独休眠
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

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关推荐

友情链接

网站分类

最新留言

最近发表