本文编写于 741 天前,最后修改于 736 天前,其中某些信息可能已经过时。
一般的,我会将Emby开放到公网,并且为了美观以及和现有环境并存,会选择将Emby通过反向代理来使用。
但这时,你可能会发现一个问题,网页端播放一个视频真的是慢到吐血,但是客户端却很快,这是为什么?
客户端在请求服务器时会顺带获取一下你在Emby中的网络设置,这样你会发现在内网中连接Emby是直接走内网IP。
如此,客户端连接到Emby服务器时便是直接与Emby服务器交互而不经过反向代理。
如果我们通过反向代理想在外网观看视频,那么这个视频流将会先被反向代理服务器获取,有的可能还有缓存策略...
这样你的视频流要经过中转,不仅耗费处理资源还有存储资源,更重要的是你的视频播放效率可能低了一倍不止。
先决条件
- 你是使用Nginx或任意有反向代理功能的程序进行反代Emby
本文将以Nginx作为示范,在公网上部署一个HTTPS访问的Emby。
获取pfx格式的证书
如果你是已有证书,仅需使用OpenSSL工具转换:
openssl pkcs12 -export -out emby.pfx -inkey 证书密钥 -in 证书 -certfile 根证书
然后OpenSSL会要求你使用一个密码以保护该证书。
你也可以重新申请证书,这里我在腾讯云上申请了一张亚洲诚信的证书。

其中
IIS
目录内就直接有我们需要的fpx格式
其中
keystorePass.txt
的内容是证书密码。
在Emby后台配置SSL
在你的Emby控制台->网络 部分

然后把刚刚的信息填入,保存,重启Emby服务端
尝试访问
https://Emby域名:刚刚设置的端口
如正常访问即配置成功。
添加伪静态
你只需要复制粘贴:
location ~* /Images/(.*)+
{
rewrite ^/(.*)$ https://$host:8099/$1 permanent;
}
location /emby/Videos
{
rewrite ^/(.*)$ https://$host:8099/$1 permanent;
}
location /emby/Audio
{
rewrite ^/(.*)$ https://$host:8099/$1 permanent;
}
然后把8920
替换成你刚刚设置的端口即可。
不要粗暴的替换掉/emby
下的内容,因为有很多关键api还是需要和访问域名搭配认证的。
后续
你还可以顺带为你的Emby的反向代理开启缓存,有了上面的配置就不会导致更新图片后还未刷新的问题了。
至于播放视频的体验,试试吧~
舒服。
配合kodi给电视做媒体库的?
感觉有点麻烦。 OωO
拜仁慕尼黑 2020-05-26 12:14
也不一定是配合啦,单独用也很舒服~
时光 2020-06-12 21:45