所需环境:
- 性能机 VPS-1:宝塔、Nginx、Plex 服务端
- 反代机 VPS-2:宝塔、Nginx
- 某个域名指向 VPS-2
宝塔 Nginx 反代
所需环境:
一个性能好的 VPS 装 Plex 进行解码并装宝塔进行初步反代,代号 VPS-1。
一个线路友好的 VPS 装宝塔作为前端用来二次反代,代号 VPS-2。
一个域名如 plex.llzou.com(仅示例,需更改成自己的域名。)指向 VPS-2 的 IP。
1、VPS-1 宝塔 Nginx 设置
网站-添加站点 域名为指向 VPS-2 的域名(plex.llzou.com)。
在该站点的配置文件中删除对 css 等的缓存,添加如下字段并保存:
删除以下字段:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
添加以下字段:
client_max_body_size 5000M;
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 Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
proxy_cache off;
proxy_redirect off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:32400/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_ssl_verify off;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
2、VPS-2 宝塔 Nginx 设置
网站-添加站点 域名为指向 VPS-2 的域名(plex.llzou.com)。
(1)修改 hosts
SSH 连接到 VPS-2,使用你惯用的编辑器打开/etc/hosts 并添加:
VPS-1的IP plex.llzou.com
(2)配置 SSL
为了避免版权问题,建议对流量进行 SSL 加密。
宝塔要求在配置反代前先配置 SSL,设置-SSL-Let’s Encrypt-申请。
成功后复制密钥(KEY)与证书(PEM)到 VPS-1 的 SSL 中(SSL-其他证书-> 粘贴-> 保存)
成功后复制密钥(KEY)与证书(PEM)到 VPS-1 的 SSL 中(SSL-其他证书-> 粘贴-> 保存)
成功后复制密钥(KEY)与证书(PEM)到 VPS-1 的 SSL 中(SSL-其他证书-> 粘贴-> 保存)
两边都建议打开右上角的的强制 HTTPS。
(3)配置反向代理
在该站点的配置文件中删除对 css 等的缓存,添加如下字段并保存(请自行修改域名):
删除以下字段:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
添加以下字段:
client_max_body_size 5000M;
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 Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
proxy_cache off;
proxy_redirect off;
proxy_buffering off;
location / {
proxy_pass https://plex.llzou.com/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_ssl_verify off;
proxy_http_version 1.1;
proxy_set_header Host plex.llzou.com;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
Emby版本:
client_max_body_size 5000M;
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 Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
proxy_cache off;
proxy_redirect off;
proxy_buffering off;
location ^~ / {
proxy_pass https://plex.llzou.com;
proxy_set_header Host plex.llzou.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache;
proxy_ssl_server_name on;
}
四、Plex 面板设置
如果反代正常,那么从反代的面板网址进入的流量将会经过 VPS-2 的中转并到达 VPS-1。
但是在使用 app.plex.tv 或 APP 等客户端时的流量还会直连到 VPS-1。
如果希望客户端的流量也能被中转,需要在面板中进行如下设置:
设置-> 网络
- 取消勾选“启用中转”
- 自定义服务器访问 URL 添加 https://yourdomain:443
设置-> 远程访问-> 禁用远程访问
设置完毕,至此所有流量都将经过 VPS-2 的中转到达 VPS-1。
可在 Web 端播放视频时打开 f12 开发者工具-网络,查看媒体文件的链接是否来自于你的域名。
或者在播放视频时打开 VPS-2 的宝塔面板查看流量变化。
疑难解答
1、禁止远程访问后与 Plex 服务器彻底失联怎么办?
问题出在反代的设置上,可使用 端口转发完成初始化的方法通过端口映射在本地连接到 Plex 服务端。
SSH 转发端口
打开电脑 Shell 窗口,运行命令:
ssh root@服务器IP -L 8888:localhost:32400
输入正确的密码后,再去浏览器里打开 localhost:8888/web 进入即可。
2、播放时 Plex 服务端 CPU 占用太高,播放不顺畅。
说明搭建 Plex 服务端的机器 CPU 太弱,无法适应软解的性能需要,建议 Intel E5 四核以上,AMD 两核以上。
或者在设置–转码器里选中“禁用视频流转码”,但这会影响 web 端和某些客户端的播放,不推荐。
3、每天午夜或者有一段时间服务器负载和流量飙升。
这种情况一般出现在媒体文件没有保存在本地,而是通过 Rclone 或 Nfs 挂载的云存储的情况。
可以在设置-预定任务中取消勾选“维护期间执行大量媒体分析”。
4、同样的配置也适用于 Jellyfin、Emby
修改 Nginx 配置文件中对应端口即可
后台管理面板无需配置自定义 URL