# =========================
# 前后端分离式 Emby 反代配置
# Emby 原始前端:frontend.embydomain.com
# Emby 原始后端:backend1.embydomain.com、backend2.embydomain.com、backend3.embydomain.com
# 本机发布:provider.emby.yourdomain.com
# =========================
# ======== 前端 UI 反代 ========
location / {
# === 防爬虫:拦截常见命令行工具/空 UA ===
if ($http_user_agent ~* (curl|wget|python|scrapy|bot|spider|crawler|Go-http-client)) {
return 403;
}
if ($http_user_agent = "") {
return 403;
}
# === 域名回写,将 Emby 原始后端流地址替换为 provider.emby.yourdomain.com/s*/ ===
# ⭐️ 必改下面的 backend*.embydomain.com 替换为真实后端分片域名
proxy_redirect https://backend1.embydomain.com/ https://provider.emby.yourdomain.com/s1/;
proxy_redirect https://backend2.embydomain.com/ https://provider.emby.yourdomain.com/s2/;
proxy_redirect https://backend3.embydomain.com/ https://provider.emby.yourdomain.com/s3/;
# === 将客户端请求转发到 Emby 原始前端 ===
proxy_pass https://frontend.embydomain.com; # ⭐️ 必改
# === 基本代理头 ===
proxy_set_header Host frontend.embydomain.com; # ⭐️ 必改
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_ssl_server_name on;
proxy_http_version 1.1;
# === WebSocket 控制台支持 ===
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
# ======== 每个分片独立 location 规则 ========
location /s1 {
if ($http_user_agent ~* (curl|wget|python|scrapy|bot|spider|crawler|Go-http-client)) {
return 403;
}
if ($http_user_agent = "") {
return 403;
}
rewrite ^/s1(/.*)?$ $1 break;
proxy_pass https://backend1.embydomain.com/; # ⭐️ 必改
proxy_set_header Host backend1.embydomain.com; # ⭐️ 必改
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_server_name on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
location /s2 {
if ($http_user_agent ~* (curl|wget|python|scrapy|bot|spider|crawler|Go-http-client)) {
return 403;
}
if ($http_user_agent = "") {
return 403;
}
rewrite ^/s2(/.*)?$ $1 break;
proxy_pass https://backend2.embydomain.com/; # ⭐️ 必改
proxy_set_header Host backend2.embydomain.com; # ⭐️ 必改
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_server_name on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
location /s3 {
if ($http_user_agent ~* (curl|wget|python|scrapy|bot|spider|crawler|Go-http-client)) {
return 403;
}
if ($http_user_agent = "") {
return 403;
}
rewrite ^/s3(/.*)?$ $1 break;
proxy_pass https://backend3.embydomain.com/; # ⭐️ 必改
proxy_set_header Host backend3.embydomain.com; # ⭐️ 必改
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_server_name on;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
Tips:该配置在某些特殊的服上无法顺利反代,大部分服反代下来没有问题
Via:基于收藏了许久的日落 𝓢𝓾𝓷𝓻𝓲𝓼𝓮 . 的 MisakaF Emby 反代配置改进而来
MisakaF Emby 权威!人才辈出的 MisakaF Emby 还是太全面了!
🤣 ★ 分离式 Emby 前后端反代配置 | v2
😂 Emby 反向代理
#Emby #Nginx #NPM #NginxProxyManager #反代 #反向代理