依旧是受到船佬某个反代配置启发,重写了新的通用 Emby 反代配置:增加了对常见爬虫和空 User-Agent (UA) 的拦截规则、域名统一回写避免潜在的地址泄露问题、keepalive_timeout 由原来 36000 秒(10 小时)调整为 3600 秒(1 小时),不需要手动填写 Emby 域名,直接复制代码粘贴到 Advanced (高级) 处即可
# 屏蔽 Emby API 文档路径(提升安全性)
location ^~ /swagger {
return 404;
}
# 主反代规则
location / {
# === 防爬虫:拦截常见命令行工具 UA ===
if ($http_user_agent ~* (curl|wget|python|scrapy|bot|spider|crawler|Go-http-client)) {
return 403;
}
# === 防爬虫:拦截空 UA ===
if ($http_user_agent = "") {
return 403;
}
# === 反代目标设置(NPM 面板变量) ===
proxy_ssl_name $server;
proxy_ssl_server_name on;
proxy_pass $forward_scheme://$server:$port;
# === 上传大小限制(上传字幕/封面等) ===
client_max_body_size 1000M;
# === 隐藏不必要的响应头 ===
proxy_hide_header X-Powered-By;
# === 流媒体播放所需的分段请求支持 ===
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
# === 保留真实客户端信息 ===
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# === WebSocket/HTTP 升级支持(Emby 控制台等功能) ===
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
# === 流媒体优化:关闭 Nginx 缓冲,降低播放延迟 ===
proxy_buffering off;
proxy_request_buffering off;
# === 长连接保持(减少频繁握手,提升稳定性) ===
keepalive_timeout 3600;
# === 域名统一回写(防止暴露后端真实地址) ===
proxy_redirect $forward_scheme://$server:$port/ /;
# === 浏览器安全策略 ===
add_header 'Referrer-Policy' 'origin-when-cross-origin';
add_header Strict-Transport-Security "max-age=15552000; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
}
注:
- 此反代配置不适用于分离式 Emby 前后端的服务器
怀念分离式前后端 MisakaF Emby 的第 114514 天
😂 统一式 Emby 前后端反代配置
😂 Emby 反向代理
#Emby #Nginx #NPM #NginxProxyManager #反代 #反向代理