云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04 Server上安装与配置Plex Requests

在Ubuntu 18.04 Server上安装与配置Plex Requests

2018-12-28 11:57:31作者:高仲稿源:云网牛站

本文展示如何在Ubuntu 18.04 Server操作系统上安装与配置Plex Requests,运行条件为至少有1GB的RAM,建议2GB,这样才能平稳的运行,请跟着本文的步骤操作。

在Ubuntu 18.04 Server上安装与配置Plex Requests

 

在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

在Ubuntu 18.04 Server上安装与配置Plex Requests

然后前往 https://github.com/lokenx/plexrequests-meteor/releases 并下载最新版本:

在Ubuntu 18.04 Server上安装与配置Plex Requests

要从命令行下载它,请使用以下命令,如果出现新版本,只需将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

在Ubuntu 18.04 Server上安装与配置Plex Requests

现在,可以访问Plex Requests管理页面了:

your-server-ip:3000/admin

如果端口3000被防火墙阻止,则运行以下命令以允许在端口3000上进行访问:

sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

在Ubuntu 18.04 Server上安装与配置Plex Requests

单击注册链接(Register)以创建管理员帐户:

在Ubuntu 18.04 Server上安装与配置Plex Requests

 

使用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获取终端的控制权:

在Ubuntu 18.04 Server上安装与配置Plex Requests

 

设置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

在几秒钟内,应该看到如下所示的祝贺消息,这意味着证书已成功获得:

在Ubuntu 18.04 Server上安装与配置Plex Requests

刷新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

在几秒钟内,应该看到如下所示的祝贺消息,这意味着证书已成功获得:

在Ubuntu 18.04 Server上安装与配置Plex Requests

刷新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。

 

相关主题

在CentOS无网络情况下python包requests的安装和卸载

精选文章
热门文章