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

解决反向代理JellyFin后播放等待时间过长的问题
错误配置的Nginx反向代理缓存导致JellyFin播放影片与拖动进度条需要等待较长时间
May 31, 2022
阅读时长: 1 分钟
虽然我已经转向使用Emby了
但还是把这个一年前遇到的问题的解决方案发出来吧

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

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

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

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

解决方案
nginx配置文件中对反向代理禁用缓存


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;
}

来源: 雨林博客(www.yl-blog.com)