本文展示如何在Ubuntu 18.04 Server操作系统上安装与配置Plex Requests,运行条件为至少有1GB的RAM,建议2GB,这样才能平稳的运行,请跟着本文的步骤操作。
在Ubuntu 18.04服务器上安装Plex Requests的步骤 Plex Requests是用MeteorJS编写的,MeteorJS是一个免费的开源JavaScript Web框架,用于构建Web和移动应用程序,要运行Plex Requests,我们需要使用以下命令安装MeteorJS: sudo apt install curl curl https://install.meteor.com/ | sh
然后前往 https://github.com/lokenx/plexrequests-meteor/releases 并下载最新版本:
要从命令行下载它,请使用以下命令,如果出现新版本,只需将1.12.2替换为新版本号即可: wget -O plexrequests-meteor-1.21.2.zip https://codeload.github.com/lokenx/plexrequests-meteor/zip/v1.21.2 接下来,解压缩下载的plexrequests-meteor-1.21.2.zip文件: sudo apt install unzip unzip plexrequests-meteor-1.21.2.zip cd进入目录: cd plexrequests-meteor-1.21.2/ 现在我们可以使用以下命令运行Plex Requests了: meteor 请注意,如果服务器没有足够的RAM,则此命令将会失败,你将看到Error – No Memory错误:Error: spawn ENOMEM。 此外,Plex Requests默认侦听端口3000,如果另一个应用程序使用端口3000,则指定替代端口,如3002等(MongoDB侦听端口3001): meteor --port 3002
现在,可以访问Plex Requests管理页面了: your-server-ip:3000/admin 如果端口3000被防火墙阻止,则运行以下命令以允许在端口3000上进行访问: sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
单击注册链接(Register)以创建管理员帐户:
使用SystemD在后台运行Plex Requests 默认情况下,meteor命令在前台运行,这意味着如果退出终端,Plex Requests将停止运行。要在后台运行它,我们可以创建一个SystemD服务,首先,按Ctrl+C停止当前的过程,然后使用命令行文本编辑器(如nano)为Plex Requests创建SystemD服务文件: sudo nano /etc/systemd/system/plex-requests.service 在此文件中,我们需要设置HOME环境变量,设置工作目录并指定meteor将作为标准用户运行,所以将以下文本放入此文件中,根据需要替换下面的ywnz: [Unit] Description=Plex Requests After=syslog.target network.target [Service] Environment="HOME=/home/ywnz" WorkingDirectory=/home/ywnz/plexrequests-meteor-1.21.2 ExecStart=/usr/local/bin/meteor Type=simple Restart=always RestartSec=10 User=ywnz Group=ywnz [Install] WantedBy=multi-user.target 要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要退出,请按Ctrl+X。接下来,我们可以使用以下命令启动SystemD服务: sudo systemctl start plex-requests 并在系统启动时启用自动启动: sudo systemctl enable plex-requests 现在检查状态: systemctl status plex-requests 确保它正在运行,然后按q获取终端的控制权:
设置Nginx反向代理(子域) 要通过域名访问Plex Requests而不是输入IP地址和端口号,可以使用Nginx设置反向代理。运行以下命令安装Nginx Web服务器: sudo apt install nginx 然后为Plex Requests创建Nginx虚拟主机文件: sudo nano /etc/nginx/conf.d/plex-requests.conf 将以下行放入文件中,将requests.example.com替换为自己的域名,不要忘记为子域设置A记录,位置location / {…}将使Nginx重定向请求到端口3000: server { listen 80; server_name requests.example.com; error_log /var/log/nginx/plex-requests.error; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #upgrade to WebSocket protocol proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } 保存并关闭文件,然后测试Nginx配置: sudo nginx -t 如果测试成功,则重新加载Nginx以使新配置生效: sudo systemctl reload nginx 现在,Plex Requests已运行在Nginx上,可以通过域名(requests.example.com)访问它。 要启用HTTPS安全连接,可以从Let's Encrypt获取并安装免费的TLS/SSL证书,参考HTTPS加密简介以及Nginx安装Let’s Encrypt免费SSL/TLS证书,安装Let的加密(certbot)客户端: sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx 然后运行以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书,将下面的your-email-address及requests.example.com替换为实际数据: sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com 在几秒钟内,应该看到如下所示的祝贺消息,这意味着证书已成功获得:
刷新Plex Requests网页,你会发现HTTP连接会自动重定向到HTTPS安全连接。
设置Nginx反向代理(子目录) 如果希望通过域的子目录访问Plex Requests,请打开Plex服务器的现有Nginx虚拟主机文件,我的名字叫做plex.conf: sudo nano /etc/nginx/conf.d/plex.conf 如果已在服务器启用了HTTPS,可以参考网站从HTTP升级成HTTPS完全配置教程,只需要将以下行添加到SSL服务器中: location ~* (/search|/admin|/requests|/packages|/sockjs|/app|/merged-stylesheets.css) { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } 在上面的配置中,我们指定如果请求URL以/search, /admin, /requests, /packages, /sockjs, /app, or /merged-stylesheets.css结尾,则告诉Nginx将请求重定向到端口3000。如果请求URL在/sockjs中结束,则会有一些WebSocket请求以及正常的HTTP请求,因此我们添加最后两个proxy_set_header指令以升级到WebSocket协议。 保存并关闭文件,然后测试Nginx配置: sudo nginx -t 如果测试成功,则重新加载Nginx以使新配置生效: sudo systemctl reload nginx 现在可以通过子目录访问主Plex Requests网页: example.com/search 管理页面可以通过访问: example.com/admin
设置Apache反向代理(子域) 如果你更喜欢Apache到Nginx,那么安装它: sudo apt install apache2 要将Apache用作反向代理,我们需要启用代理模块和头模块: sudo a2enmod proxy proxy_http proxy_wstunnel headers 然后为Plex Requests创建虚拟主机文件: sudo nano /etc/apache2/sites-available/plex-requests.conf 将以下行放入文件中,将requests.example.com替换为自己的域名,不要忘记为子域设置A记录: <VirtualHost *:80> ServerName requests.example.com ErrorDocument 404 /404.html #HTTP Requests ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ #When protocol upgrade to Websocket is received, change the origin (protocol scheme, host and port) RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P] </VirtualHost> 保存并关闭文件,然后启用此虚拟主机: sudo a2ensite plex-requests.conf 重新启动Apache: sudo systemctl restart apache2 现在,Plex Requests运行在Apache上,可以通过域名(requests.example.com)访问它。 要启用HTTPS安全连接,可以从Let's Encrypt获取并安装免费的TLS/SSL证书,安装Let的加密(certbot)客户端: sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-apache 然后运行以下命令,该命令使用Certbot Nginx插件自动获取并安装TLS证书。将your-email-address和requests.example.com替换为您的实际数据: sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com 在几秒钟内,应该看到如下所示的祝贺消息,这意味着证书已成功获得:
刷新Plex Requests网页,会发现HTTP连接会自动重定向到HTTPS安全连接。
设置Apache反向代理(子目录) 如果希望通过域的子目录访问Plex Requests,请打开Plex服务器的现有Apache虚拟主机文件,我的名字叫plex-le-ssl.conf(请注意,需要443的虚拟主机): sudo nano /etc/nginx/conf.d/plex-le-ssl.conf 如果服务器启用HTTPS了,只需在<VirtualHost *:443>...</VirtualHost>中添加以下行: RewriteEngine on #If the requested URL is meant for Plex Requests, then redirect the request to localhost:3000 RewriteCond %{REQUEST_URI} ^/(search|admin|requests|packages|app|sockjs|merged-stylesheets.css) [NC] RewriteRule .* http://localhost:3000%{REQUEST_URI} [P] #This is for Websocket requests. <Location /sockjs/> RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC] RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P] </Location> 保存并关闭文件,然后重新加载Apache以使更改生效: sudo systemctl reload apache2 现在可以通过子目录访问主Plex Requests网页: example.com/search 管理页面可以通过访问: example.com/admin
结语 以上就是在Ubuntu 18.04服务器上安装与配置Plex Requests的全部内容了,建议最好先配置服务器支持HTTPS。
相关主题 |