Featured image of post 解决反向代理JellyFin后播放等待时间过长的问题

解决反向代理JellyFin后播放等待时间过长的问题

错误配置的Nginx反向代理缓存导致JellyFin播放影片与拖动进度条需要等待较长时间

虽然我已经转向使用Emby了
但还是把这个一年前遇到的问题的解决方案发出来吧

环境及问题描述

JellyFin 部署于主机A的docker中
nginx 部署于主机B
通过主机A的IP播放影片与拖动进度条无需等待
通过主机B部署的nginx反向代理播放与拖动进度条需要等待30秒以上

F12确定问题出自https://example.com/Videos/*
F12

连续两次请求中 首次请求响应时间正常
而第二次请求pending时间超长(50秒+)

查看地址后发现其url完全一致
因此考虑nginx缓存问题

解决方案

nginx配置文件中对反向代理禁用缓存

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
location / {
        # Proxy main Jellyfin traffic
        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_cache off;
        # Disable buffering when the nginx proxy gets very resource heavy upon streaming
        proxy_buffering off;
    }
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计