说明
本文为Navdrome的进阶设置,意在实现Navidrome服务端音乐源的直链播放,并通过nginx实现https访问。为了帮助你更好的理解直链播放,你需要先阅读下我的另一篇笔记: 基于网盘挂载的emby服务端并实现直链播放 。由于音乐本身容量不大,即便无损格式,最多也才几十M,故实现直链播放本身意义没有 emby
来得明显,本文供闲的蛋疼的折腾玩家一个另类的思路。
原理
搭建 alist多种存储的目录文件列表程序 ,将需要挂载的网盘添加上去,如阿里云盘,世纪互联等,然后使用 nginx
及其 njs
模块将 navidrome
音乐播放地址劫持到 alist
直链。
准备工作
- 已按照本人上一篇基于网盘挂载搭建属于你自己的音乐服——navidrome 完成Navidrome的搭建。
- 已完成本人基于网盘挂载的emby服务端并实现直链播放 里
alist
和nginx
、njs模块
的安装工作。 解析域名到你的vps。
申请域名证书
采用网上提供Acme.sh 域名证书一键申请脚本进行申请,首先停止nginx服务
systemctl stop nginx
然后复制一键脚本申请证书
wget -N --no-check-certificate https://raw.githubusercontents.com/Misaka-blog/acme-1key/master/acme1key.sh && bash acme1key.sh
按1安装 Acme.sh 域名证书申请请脚本,根据提示输入自己的邮箱
然后返回主菜单,按3申请单域名证书,根据提示输入自己的域名
出现如下提示,表示证书申请完成
接下来,新建/root/certs/你的域名
,将root
目录下的cert.crt
和private.key
复制到此目录。配置Nginx
进入nginx配置目录,删除
default.conf
,并创建以你域名命名的conf,如yourdomain.com.conf
cd /etc/nginx/conf.d rm default.conf vi yourdomain.com.conf
填入如下内容:
js_path /etc/nginx/conf.d/;
js_import msc2pan from msc.js;
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com;
root /root/certs/yourdomain.com;
index index.html index.htm index.php;
ssl_certificate /root/certs/yourdomain.com/cert.crt;
ssl_certificate_key /root/certs/yourdomain.com/private.key;
location / {
add_header 'Referrer-Policy' 'no-referrer';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:4533;
}
location ~* /rest/stream {
js_content msc2pan.redirect2Pan;
}
}
{/collapse-item}
在 /etc/nginx/conf.d/
目录下新建msc.js,填入以下内容:
然后在 /etc/nginx/nginx.conf
首行添加如下内容:
load_module modules/ngx_http_js_module.so;
启用nginx服务,并验证配置有无问题:
nginx -c /etc/nginx/nginx.conf
nginx -t
如无报错,重启nginx服务
nginx -s reload
打开你的域名,如能正常访问navidrome页面,视为配置成功。
验证直链是否正常
完成直链播放还有一个前提,首先打开你的app,添加的音乐服地址,并完成登录。
然后用浏览器打开你的navidrome主页,点击右上角头像-客户端
找到你手机使用的app名称,点击进去
勾选回报实际路径,保存
然后,在你的app上随便播放一首歌,试试拖曳速度,能正常播放视为直链正常。
查看下日志:
tail -f -n 10 /var/log/nginx/access.log /var/log/nginx/error.log | grep js:
如出现以下直链地址,表示直链成功,并且此时流量不经过 vps 服务器。
最后感谢下本教程脚本的提供大佬: bpking
没有他的技术支持也就没有本教程。
谢谢分享
看看怎么搞
技术文章 感谢分享 新年快乐
先收藏了
谢谢分享
谢谢
谢谢
谢谢分享
谢谢分享
谢谢分享
看看行不行
谢谢分享 试试看
的点点滴滴多
学习学习
感谢分享
感谢分享
看看惹
感谢分享!
太强了,正是我所需要的东西
支持一下
学习一下navidrome
学习学习
谢谢分享
学习一下
看下
学习一下
学习
哈迪斯
学习
谢谢分享
好用
学习直链
谢谢分享 音乐服务器直链还是很有必要得
谢谢分享
谢谢分享
感谢分享
好像失效了,请问可以修复吗,感谢
谢谢分享
谢谢分享
感谢分享
感谢分享
感谢分享
博主真是太厉害了!!!
叼茂SEO.bfbikes.com
叼茂SEO.bfbikes.com
怎么收藏这篇文章?
看的我热血沸腾啊https://www.237fa.com/
想想你的文章写的特别好www.jiwenlaw.com