Closed hiccup90 closed 7 months ago
链路是这样的吗? 外网是ipv6访问=>nginx反代:8095=>本项目nginx反代:(这个监听端口缺少信息,配置位于emby.conf->server->listen)=>原始emby服务(http://10.10.10.2:8096)
是的。链路是这样的。那么emby.conf该如何修改? 麻烦作者了。因为对这一块并不是很熟悉。
链路是这样的吗? 外网是ipv6访问=>nginx反代:8095=>本项目nginx反代:(这个监听端口缺少信息,配置位于emby.conf->server->listen)=>原始emby服务(http://10.10.10.2:8096)
尝试把
listen 80;
server_name 10.10.10.2:8096;
修改成这样。但是还是不行。。
估计是默认的80端口和其他服务冲突了,用一个自定义的吧
外网是ipv6访问 =>外网(这里可选配置https) nginx反代:8095 这里需要开启nginx的ipv6监听,nginx.conf中加一行 listen [::]:8095 检查location中的proxy_pass为内网ip:8097
=>内网(不要配置https) 本项目nginx反代: 8097 内网可以不用加,但是如果还是报错,也需要同时监听ipv6 listen [::]:8097 这个监听端口缺少信息,配置位于emby.conf->server->listen 检查location中的proxy_pass为内网ip:8096,已用njs抽取至constaant.js的embyHost变量,等同值
=>内网(不要配置https) 原始emby服务(http://10.10.10.2:8096/)
其实只有一层V6。就是外网访问Nginx是V6。内网还是都是V4的。 也尝试修改过端口,不知道是我修改的不对,还是其他问题。结果是不行。。
然后我以为是strm的问题。因为用网页看了下。一直是直接请求strm内的地址。所以尝试修改strm的内容为路径。 但是结果还是不尽人意。 我再研究研究吧。。
谢谢作者了
然后我以为是strm的问题。因为用网页看了下。一直是直接请求strm内的地址。所以尝试修改strm的内容为路径。
和这个没关系,单层反代的情况下是都支持的,建议先内网访问最后一层反代测试一下,如果能成功再排查其他层的情况,这样看日志关键信息也方便一点儿
之前测试过。内网访问的情况下。直接用我外网域名访问的方式是成功的。
但是纯外网的情况。就不行了。
现在使用的是http://hicane.com/archives/nas-115-alist-cd2-shi-xian-emby-zhi-lian-bo-fang-jia-su-sao-ku-ban 这篇教程的方案,然后strm是路径的方式。测试成功了。但是我看他的constant.js好像跟你的配置文件也是类似的。
我改下路径的strm测试下。
现在换回您的方案了。用strm的路径模式可以了。 之前用strm的路径不行。估计是我路径没搞对。
但是如果是http://10.10.10.2:5244/d/xxxxx/xxxxx.mkv 就死活不行。 10.10.10.2是内网alist的ip
目前测试下来,没法保存播放进度。只要点击过,就算看完了。
这种不行的。。[http://10.10.10.2:5244/d/xxxxx/xxxxx.mkv] 这是内网ip,302重定向给客户端在外网访问不了,如果你alist有域名且公网畅通,目前可以暂时添加映射兼容
// url映射,会在xxxMountPath之后全部替换一遍,不要有重叠 const embyPathMapping = [ ["http://10.10.10.2:5244", "http://yourdomain:5244"] ];
过几天我可以优化下代码兼容你这种情况 如果链接比较多编辑起来费劲,还是用embyPathMapping做映射吧
这种不行的。。[http://10.10.10.2:5244/d/xxxxx/xxxxx.mkv] 这是内网ip,302重定向给客户端在外网访问不了,如果你alist有域名且公网畅通,目前可以暂时添加映射兼容
啊。果然。我把strm里面文件的路径。换成https://domain:port/d/xxxxx/xxxxx.mkv 就能正常外网播放了。也能正常保留播放记录,不过好像内封字幕又出问题了。如果用http://10.10.10.2:5244的话,虽然不能播放,但是能正确识别内封字幕 搞半天,原来问题出在这里。怪我之前没说清楚。 之前用路径的方式的,字幕跟播放记录都不能正确识别。
好的,多谢反馈,刚对比调试plex的strm支持隐约发现这个问题了
之前用路径的方式的,字幕跟播放记录都不能正确识别。
好的,多谢反馈,刚对比调试plex的strm支持隐约发现这个问题了
辛苦辛苦。如果路径的方式,能正确支持字幕和播放记录的话。路径的strm是比较理想的方案了 我用另一个插件能很方便的生成所有的strm
目前为止。对于我来说 const embyPathMapping = [ ["http://10.10.10.2:5244", "http://yourdomain:5244"] ]; 这是最完美的方案,字幕正常,播放进度也正常。
// url映射,会在xxxMountPath之后全部替换一遍,不要有重叠 // strm文件提醒,填写规则参考emby官方文档,强烈建议strm文件内部只填路径,重定向后的远程链接将被部分浏览器跨域限制 const embyPathMapping = [ ["http://10.10.10.2:5244", "http://yourdomain:5244"] ];
之前的版本,用这个映射可以使用。 但是最新版本,如果也这么映射的话。 会丢失前面的域名部分。只留下/d/xxxx/xxxxx.mp4 啊,我也不知道这算不算bug。也有可能我设置问题。
1.路径映射可选参数做了增强,限定下媒体来源,之前映射范围太大了,估计是被错误截取掉了 2.strm测试下来还是按emby官方文档的远程链接方式比较好,emby第一次播放后会补充字幕流和媒体信息 3.对于局域网["http://10.10.10.2:5244"]的这种strm也做了兼容,目前可以去掉embyPathMapping的映射了
我的使用环境可能比较特别。 emby:8096交给本项目。然后又对本项目:8095进行了一次反代。并且外网是ipv6访问的
我在内网环境测试。8095端口能正常播放。 但是外网环境,并不能播放.
使用的是strm文件。格式如下 http://alist:5244/d/xxxxx/xxxxx/xxxxxx.mkv
其中一段日志,不知道能不能体现问题。 2024/03/26 14:54:33 [error] 70#70: 215 upstream prematurely closed connection while reading response header from upstream, client: 10.10.10.21, server: default, request: "GET /emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CMusicVideo%2CVideo&ImageTypes=Backdrop&ParentId=678660&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28 HTTP/1.1", subrequest: "/emby/Users/bf90b02b42d045c58d503032cb523503/Items", upstream: "http://10.10.10.2:8096/emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CMusicVideo%2CVideo&ImageTypes=Backdrop&ParentId=678660&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28&Fields=Path", host: "外网域名" 2024/03/26 14:54:33 [error] 69#69: 213 upstream prematurely closed connection while reading response header from upstream, client: 10.10.10.21, server: default, request: "GET /emby/Users/bf90b02b42d045c58d503032cb523503/Items/678660?X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28 HTTP/1.1", upstream: "http://10.10.10.2:8096/emby/Users/bf90b02b42d045c58d503032cb523503/Items/678660?X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28", host: "外网域名" 2024/03/26 14:54:33 [error] 66#66: 205 upstream prematurely closed connection while reading response header from upstream, client: 10.10.10.21, server: default, request: "GET /emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CMusicVideo%2CVideo&ImageTypes=Backdrop&ParentId=678660&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28 HTTP/1.1", subrequest: "/emby/Users/bf90b02b42d045c58d503032cb523503/Items", upstream: "http://10.10.10.2:8096/emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CMusicVideo%2CVideo&ImageTypes=Backdrop&ParentId=678660&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28&Fields=Path", host: "外网域名" 2024/03/26 14:54:33 [error] 67#67: 208 upstream prematurely closed connection while reading response header from upstream, client: 10.10.10.21, server: default, request: "GET /emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CGame%2CBook&ImageTypes=Backdrop&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28 HTTP/1.1", subrequest: "/emby/Users/bf90b02b42d045c58d503032cb523503/Items", upstream: "http://10.10.10.2:8096/emby/Users/bf90b02b42d045c58d503032cb523503/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CGame%2CBook&ImageTypes=Backdrop&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Hiccup&X-Emby-Device-Id=Hiccup&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=2b9e891df6114ff2a70ab0a15a75da28&Fields=Path", host: "外网域名"
10.10.10.21 是我一个反代服务器的ip
配置如下:
其他都为默认。