介绍
不想看废话的可以直接从步骤开始看。
如今使用nas的用户是越来越多,nas除了用来做文件储存使用,也可以将之当作一台个人家用服务器使用,用来作为一个私人的视频储存库的用户也不再少数,现在市面上使用较常见的为 emby 、 plex、 Jellyfin ,包括nas系统自带的(如群晖系统)等不少选择。
对于搭建如今网上都有很多教程,包括如何实现在公网上访问的教程也是极多,但现在https是越来越普及,如何给其添加一证书进行https进行加密访问我觉得还是很有必要的。
以我目前使用的plex为例,虽然在后台设置里有设置方法,但是对于我这个非专业人士来说,还是有些搞不明白,后来在查询解决办法的时候看到一篇名为“Plex和CloudFlare结合速度翻倍 CDN加速Plex”文章,终是找到利用nginx反代给plex部署证书的解决办法。
步骤
在开始之前首先需要有效的ssl证书文件和在服务器上配置好nginx
(关于nginx的安装请自行查找教程进行部署,我使用的是网站环境搭建的lnmp一键脚本,nginx的配置文件目录会和独立安装的nginx文件目录不同!!!)
服务器端设置
下载配置nginx
cd /usr/local/nginx/conf/vhost
wget -O plex.conf https://raw.githubusercontent.com/toomuchio/plex-nginx-reverseproxy/master/nginx.conf
修改下载的Nginx配置文件
vim plex.conf
找到 server_name 并用自己要绑定的域名替换 (默认http端口为80,https端口为443,由于家用带宽禁用了80,443,8080端口,请自行更改未占用的端口,访问时在域名后面增加端口号即可)
然后找到:
ssl_certificate
ssl_certificate_key
ssl_trusted_certificate #如没有可将该段删除
ssl_dhparam
在此处替换为申请的letsencrypt证书:
ssl_certificate /etc/nginx/ssl/{YOUR HOSTNAME}/fullchain.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/{YOUR HOSTNAME}/key.pem;
ssl_trusted_certificate //usr/local/nginx/conf/ssl/{YOUR HOSTNAME}/chain.pem; #如没有可将该大段删除
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
编辑好后保存退出,并重启nginx
lnmp nginx restart
现在Plex应该可以通过https开头的域名访问了
Plex设置
更改Plex服务器设置
确保“显示高级设置”已启用。在“网络”选项卡下,添加自定义访问URL:
http://xxx.xxx.com:xx,https:xxx.xxx.com:xx
之后便可以在路由器上做好端口转发,尽情在公网里访问了~
注:如有连接不通的情况请检查自己服务的防火墙对于所使用的端口是否放行!