bpking1 / embyExternalUrl

some emby/jellyfin scripts
MIT License
698 stars 126 forks source link

日志use original link,请问是什么原因呢? #85

Closed LIUBANGJIAN closed 5 months ago

LIUBANGJIAN commented 5 months ago

root@TW-VM-DS918:/volume1/CloudNAS/CloudDrive2/115# docker logs -f -n 10 emby-nginx 2>&1 | grep js: 2024/04/08 11:31:50 [warn] 25#25: 795 js: 0ms, mount emby file path: http://tw76.XXXXX.top:5244/d/115/经典电影/壮志凌云 (1986)/壮志凌云 (1986) tt0092099 1080p h265 10bit AC3 eng, zho.mkv 2024/04/08 11:31:50 [warn] 25#25: 795 js: hit isDisableRedirect: ["r.variables.remote_addr",0,["172.","10.","192.","[fd00:"]] 2024/04/08 11:31:50 [warn] 25#25: 795 js: use original link 2024/04/08 11:31:51 [warn] 25#25: 798 js: cached PlaybackInfo path, will skip excess fetchEmbyFilePath 2024/04/08 11:31:51 [warn] 25#25: 798 js: 0ms, mount emby file path: http://tw76.XXXX.top:5244/d/115/经典电影/壮志凌云 (1986)/壮志凌云 (1986) tt0092099 1080p h265 10bit AC3 eng, zho.mkv 2024/04/08 11:31:51 [warn] 25#25: 798 js: hit isDisableRedirect: ["r.variables.remote_addr",0,["172.","10.","192.","[fd00:"]] 2024/04/08 11:31:51 [warn] 25#25: *798 js: use original link

emby4.8.3 今天最新的emby alist脚本。用的是constant-strm.js。 大佬们提示这个,并没有跑直连,直连地址是对的。请问怎么解决呢?

chen3861229 commented 5 months ago

因为没考虑到很多人nginx的docker容器默认是桥接的,注释下disableRedirectRule中的["r.variables.remote_addr", 0, lanIpHead]

// 禁用直链的规则,将转给原始媒体服务器处理,字幕和图片没有走直链,不用添加
// 参数1: 匹配类型或来源(字符串参数类型) "0": 文件路径(Item.Path)
// 参数2: 0: startsWith(str), 1: endsWith(str), 2: includes(str), 3: match(/ain/g)
// 参数3: 匹配目标
// 参数4: 是否处理alist响应链接
const disableRedirectRule = [
  // ["0", 0, "/mnt/sda1"],
  // ["0", 1, ".mp3"],
  // ["0", 2, "Google"],
  // ["0", 2, "/NAS/", true],
  // ["0", 3, /private/ig],
  // docker注意必须为host模式,不然此变量全部为内网ip,判断无效,nginx内置变量不带$,客户端地址($remote_addr)
  // ["r.variables.remote_addr", 0, lanIpHead],
  // ["r.headersIn.User-Agent", 2, "IE"], // 请求头参数,客户端UA
  // ["r.args.X-Emby-Device-Id", 0, "d4f30461-ec5c-488d-b04a-783e6f419eb1"], // 链接入参,设备id
  // ["r.args.X-Emby-Device-Name", 0, "Microsoft Edge Windows"], // 链接入参,设备名称
  // ["r.args.X-Emby-Client", 0, "Emby Web"], // 链接入参,客户端类型
  // ["r.args.UserId", 0, "ac0d220d548f43bbb73cf9b44b2ddf0e"], // 链接入参,用户id
];
LIUBANGJIAN commented 5 months ago

因为没考虑到很多人nginx的docker容器默认是桥接的,注释下disableRedirectRule中的["r.variables.remote_addr", 0, lanIpHead]

// 禁用直链的规则,将转给原始媒体服务器处理,字幕和图片没有走直链,不用添加
// 参数1: 匹配类型或来源(字符串参数类型) "0": 文件路径(Item.Path)
// 参数2: 0: startsWith(str), 1: endsWith(str), 2: includes(str), 3: match(/ain/g)
// 参数3: 匹配目标
// 参数4: 是否处理alist响应链接
const disableRedirectRule = [
  // ["0", 0, "/mnt/sda1"],
  // ["0", 1, ".mp3"],
  // ["0", 2, "Google"],
  // ["0", 2, "/NAS/", true],
  // ["0", 3, /private/ig],
  // docker注意必须为host模式,不然此变量全部为内网ip,判断无效,nginx内置变量不带$,客户端地址($remote_addr)
  // ["r.variables.remote_addr", 0, lanIpHead],
  // ["r.headersIn.User-Agent", 2, "IE"], // 请求头参数,客户端UA
  // ["r.args.X-Emby-Device-Id", 0, "d4f30461-ec5c-488d-b04a-783e6f419eb1"], // 链接入参,设备id
  // ["r.args.X-Emby-Device-Name", 0, "Microsoft Edge Windows"], // 链接入参,设备名称
  // ["r.args.X-Emby-Client", 0, "Emby Web"], // 链接入参,客户端类型
  // ["r.args.UserId", 0, "ac0d220d548f43bbb73cf9b44b2ddf0e"], // 链接入参,用户id
];

可以了多少大佬指导,但是我试了下改为host模式,该容器不断的重新。拿日志问gpt说80端口绑定不了。 日志如下:

2024/04/09 09:26:04stdout2024/04/09 01:26:03 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:04stdout2024/04/09 01:26:03 [notice] 1#1: try again to bind() after 500ms 2024/04/09 09:26:04stdoutnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:04stdout2024/04/09 01:26:03 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:03stdout2024/04/09 01:26:03 [notice] 1#1: try again to bind() after 500ms 2024/04/09 09:26:03stdoutnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:03stdout2024/04/09 01:26:03 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:03stdout2024/04/09 01:26:03 [notice] 1#1: try again to bind() after 500ms 2024/04/09 09:26:03stdoutnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:03stdout2024/04/09 01:26:03 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address in use) 2024/04/09 09:26:02stdout/docker-entrypoint.sh: Configuration complete; ready for start up 2024/04/09 09:26:02stdout/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh 2024/04/09 09:26:02stdout/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh 2024/04/09 09:26:02stdout10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist 2024/04/09 09:26:02stdout/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 2024/04/09 09:26:02stdout/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ 2024/04/09 09:26:02stdout/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration

chen3861229 commented 5 months ago

https://github.com/chen3861229/embyExternalUrl/issues/21 改下nginx的监听端口,80只是示例端口,被很多服务占用的

LIUBANGJIAN commented 5 months ago

这个端口不是docker内部的80端口吗?内部端口也要改?

chen3861229 commented 5 months ago

桥接网络才是内部端口,host主机模式就是直接共用端口了,docker无法设置映射了,如果用不到这个参数,也可保持桥接网络并注释这个参数

// ["r.variables.remote_addr", 0, lanIpHead],
// 禁用直链的规则,将转给原始媒体服务器处理,字幕和图片没有走直链,不用添加
// 参数1: 匹配类型或来源(字符串参数类型) "0": 文件路径(Item.Path)
// 参数2: 0: startsWith(str), 1: endsWith(str), 2: includes(str), 3: match(/ain/g)
// 参数3: 匹配目标
// 参数4: 是否处理alist响应链接
const disableRedirectRule = [
  // ["0", 0, "/mnt/sda1"],
  // ["0", 1, ".mp3"],
  // ["0", 2, "Google"],
  // ["0", 2, "/NAS/", true],
  // ["0", 3, /private/ig],
  // docker注意必须为host模式,不然此变量全部为内网ip,判断无效,nginx内置变量不带$,客户端地址($remote_addr)
  ["r.variables.remote_addr", 0, lanIpHead],
  // ["r.headersIn.User-Agent", 2, "IE"], // 请求头参数,客户端UA
  // ["r.args.X-Emby-Device-Id", 0, "d4f30461-ec5c-488d-b04a-783e6f419eb1"], // 链接入参,设备id
  // ["r.args.X-Emby-Device-Name", 0, "Microsoft Edge Windows"], // 链接入参,设备名称
  // ["r.args.X-Emby-Client", 0, "Emby Web"], // 链接入参,客户端类型
  // ["r.args.UserId", 0, "ac0d220d548f43bbb73cf9b44b2ddf0e"], // 链接入参,用户id
];