Fan
NiceGuy
泛载体

使用Nginx反向代理加速Plex

所需环境:

  • 性能机VPS-1:宝塔、Nginx、Plex服务端
  • 反代机VPS-2:宝塔、Nginx
  • 某个域名指向VPS-2

本文一、二节讲Plex和宝塔的安装;三、四节讲Nginx反代和面板设置的细节。


一、安装Plex服务端

安装方法可参考https://www.plex.tv/zh/media-server-downloads/?langr=1

#CentOS系统
$sudo yum -y update && sudo yum -y install wget
$wget https://downloads.plex.tv/plex-media-server-new/1.25.0.5282-2edd3c44d/redhat/plexmediaserver-1.25.0.5282-2edd3c44d.x86_64.rpm
$sudo yum install plexmediaserver*.rpm

#Debian/Ubuntu系统
$sudo apt -y update && sudo apt -y upgrade
$wget https://downloads.plex.tv/plex-media-server-new/1.25.0.5282-2edd3c44d/debian/plexmediaserver_1.25.0.5282-2edd3c44d_amd64.deb
$sudo dpkg -i plexmediaserver*.deb

docker容器的安装方法可参考https://github.com/plexinc/pms-docker

启动并设置Plex为开机启动:

sudo systemctl enable --now plexmediaserver

如果显示active,则一般是防火墙问题,关掉或打开端口即可。

#CentOS 7
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

#其它系统
sudo iptables -I INPUT -p tcp --dport 32400 -j ACCEPT
sudo service iptables save                              
sudo service iptables restart

1、端口转发完成初始化

如果第一次进入应用界面显示“找不到服务器”。这是因为初次使用是不允许远程访问Plex的,这里我们可以使用以下2种办法来解决这个问题。

(1) SSH转发端口

先在电脑左下角程序搜索框输入PowerShell,然后双击Windows PowerShell工具,运行命令:

ssh root@服务器IP -L 8888:localhost:32400

输入正确的密码后,再去浏览器里打开localhost:8888/web进入即可。

(2)隧道转发

这里只列举常用的putty和xshell,其它自行摸索,大致流程如下:

xshell:点击plex服务器属性-隧道-添加,监听端口8888,目标端口32400
putty:具体操作大概是connection–ssh–Tunnels,设置source port为8888,destination为127.0.0.1:32400

先使用ssh连接服务器,然后再去浏览器里打开localhost:8888/web进入即可。

2、 添加资料库

电影类型的资料库的扫描器建议选用Plex Movie 并且语言选为中文。

电视剧类型的资料库的扫描器建议选用Plex TV Series 并且语言选为中文。

二、安装宝塔与Nginx

宝塔安装教程可参考:https://www.bt.cn/bbs/thread-19376-1-1.html

Linux面板7.7.0安装命令:

#Centos安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#试验性Centos/Ubuntu/Debian安装命令 可能存在少量兼容性问题
curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh
#Ubuntu/Deepin安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/025a8874-4958-434a-bc0d-4155423378d2.png

安装完成后,会出现面板地址及默认账号与密码。
可以直接选中右键复制面板地址至浏览器打开,输入账号与密码即可使用宝塔(若无法访问检查IP是否正确,防火墙安全组是否有放行8888端口)。

进入宝塔后如果只使用反代功能 可只选择Nginx安装即可。

如果装宝塔后Plex无法正常使用请检查防火墙设置,开放32400端口。

三、宝塔Nginx反代

所需环境:

一个性能好的VPS装Plex进行解码并装宝塔进行初步反代,代号VPS-1。

一个线路友好的VPS装宝塔作为前端用来二次反代,代号VPS-2。

一个域名如plex.hfdem.net(仅示例,需更改成自己的域名。)指向VPS-2的IP。

1、VPS-1宝塔Nginx设置

网站-添加站点 域名为指向VPS-2的域名(plex.hfdem.net)。

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/c4540198-9061-422f-8cc9-646a9ae8100f.png

在该站点的配置文件中删除对css等的缓存,添加如下字段并保存:

    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;
    }
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/6c88e17c-c64f-4dd1-930a-4b20ce86d448.png
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/d0b9428f-e0da-4b34-96da-6886a6d20b4d.png

2、VPS-2宝塔Nginx设置

网站-添加站点 域名为指向VPS-2的域名(plex.hfdem.net)。

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/733eeed9-a010-4648-9424-b4d62619d990.png

(1)修改hosts

SSH连接到VPS-2,使用你惯用的编辑器打开/etc/hosts并添加:

VPS-1的IP plex.hfdem.net

(2)配置SSL

为了避免版权问题,建议对流量进行SSL加密。

宝塔要求在配置反代前先配置SSL,设置-SSL-Let’s Encrypt-申请。

成功后也要复制密钥(KEY)与证书(PEM格式)到VPS-1的SSL中,设置-SSL-其他证书->粘贴->保存。

两边都建议打开右上角的的强制HTTPS。

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/7fe2bb37-dd43-44a7-9fad-2c1011f48915.png

(3)配置反向代理

在该站点的配置文件中删除对css等的缓存,添加如下字段并保存(请自行修改域名):

    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.hfdem.net/;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_ssl_verify off;
        proxy_http_version 1.1;
        proxy_set_header Host plex.hfdem.net;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/f5e499f9-b2e3-423c-aba8-25fbd0aa418a.png

宝塔反代完成,打开你的域名看看能否进入Plex的面板,如果一切正常下面开始Plex面板的设置。

四、Plex面板设置

如果反代正常,那么从反代的面板网址进入的流量将会经过VPS-2的中转并到达VPS-1。

但是在使用app.plex.tv或APP等客户端时的流量还会直连到VPS-1。

如果希望客户端的流量也能被中转,需要在面板中进行如下设置:

设置->网络

  • 取消勾选“启用中转”
  • 自定义服务器访问URL添加 https://yourdomain:443
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/256d27c0-50e4-4d89-af6d-fad3972b0aac.png

设置->远程访问

禁用远程访问

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/d0c86063-a104-4ac8-86e3-f928b3be66b9.png
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/0271c349-a999-48c5-8e6e-0ee50701aad0.png

设置完毕,至此所有流量都将经过VPS-2的中转到达VPS-1。

可在Web端播放视频时打开f12开发者工具-网络,查看媒体文件的链接是否来自于你的域名。

https://vkceyugu.cdn.bspapp.com/VKCEYUGU-553bc9c2-618b-4ea4-8114-28c7d0c7642c/dc78016f-b0b5-4616-ba4b-f5a10b117392.png

或者在播放视频时打开VPS-2的宝塔面板查看流量变化。


疑难解答

1、禁止远程访问后与Plex服务器彻底失联怎么办?

问题出在反代的设置上,请对照教程自行检查,可使用1.1 端口转发完成初始化的方法通过端口映射在本地连接到Plex服务端。

2、播放时Plex服务端CPU占用太高,播放不顺畅。

说明搭建Plex服务端的机器CPU太弱,无法适应软解的性能需要,建议Intel E5四核以上,AMD两核以上。

或者在设置–转码器里选中“禁用视频流转码”,但这会影响web端和某些客户端的播放,不推荐。

3、每天午夜或者有一段时间服务器负载和流量飙升。

这种情况一般出现在媒体文件没有保存在本地,而是通过Rclone或Nfs挂载的云存储的情况。

可以在设置-预定任务中取消勾选“维护期间执行大量媒体分析”。

本文转载自:https://www.hfdem.net/plex_with_nginx/

泛载体

使用Nginx反向代理加速Plex
所需环境: 性能机VPS-1:宝塔、Nginx、Plex服务端反代机VPS-2:宝塔、Nginx某个域名指向VPS-2 本文一、二节讲Plex和宝塔的安装;三、四节讲Nginx反代和面板设置的细节。 一…
扫描二维码继续阅读
2021-12-02