Files
tv/nginx/conf.d/emby.conf

83 lines
2.8 KiB
Plaintext

# Load the njs script
js_path /etc/nginx/conf.d/;
js_import addExternalUrl from externalUrl.js;
js_shared_dict_zone zone=path_cache:10m;
server{
gzip on;
listen 80;
server_name default;
set $emby http://172.17.0.1:8097; #emby address
# Proxy sockets traffic for jellyfin-mpv-shim and webClient
location ~ /(socket|embywebsocket) {
# Proxy Emby Websockets traffic
proxy_pass $emby;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
# 代理 Emby 的 PlaybackInfo 请求
location ~* /Items/(\d+)/PlaybackInfo {
#proxy_buffering off;
js_body_filter addExternalUrl.rewritePlaybackInfo buffer_type=string;
proxy_pass $emby;
#proxy_pass_request_body off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 使用 JavaScript 模块处理响应
#js_body_filter rewritePlaybackInfo;
js_header_filter addExternalUrl.HeaderFilter;
}
location ~* /videos/(\d+)/original {
js_content addExternalUrl.cacheRedirect;
}
location ~* /Users/(.*)/Items/(\d+)$ {
proxy_buffering off;
js_body_filter addExternalUrl.addExternalUrl buffer_type=string;
proxy_pass $emby;
proxy_pass_request_body off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_set_header Accept-Encoding "identity";
proxy_set_header X-Original-URI $request_uri;
js_header_filter addExternalUrl.HeaderFilter;
}
location ~* /redirect2external {
js_content addExternalUrl.redirectUrl;
}
location / {
# Proxy main Emby traffic
proxy_pass $emby;
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;
# Disable buffering when the nginx proxy gets very resource heavy upon streaming
proxy_buffering off;
}
}