手搓OpenRestry反向代理jellyfin,实现看剧自由

自从发现了1panel这个面板工具之后,我一直以来都是使用它来管理我的小鸡(VPS),真的好用爱用。但是奈何很多小鸡其内存不是特别大,为了避免其内存溢出导致启动回收机制(卡顿),打算跟着GPT4o学习一下,刚好买了瓦工的盒子Pro,正好练手试试,同时记录下来整个过程,以便后续使用。

openresty

OpenResty 是基于 Nginx 的一个增强版 Web 服务器,它本质上是 Nginx + LuaJIT + 一系列 Lua 扩展模块 的集成版本。因为在1panel上一直使用这个,并且能满足我的日常所需,所以还是继续使用这个。

我直接使用的root用户,如果不用root,需要加上sudo执行。

先阐述一下我的需求:通过反向代理访问我的jellyfin服务器,让我的家人伙伴可以直连看剧。假设我的域名为A.com,通过tv.a.com反向代理到jellyfin服务器(100.100.100.100:3200),同时这个域名的放在/root/ssl-key目录下,文件分别为fullchain.pem和privkey.pem,下面是配置这个反向代理的步骤:

一、前期准备

1.1 添加 OpenResty APT 源

apt update
apt install -y curl gnupg2 ca-certificates lsb-release
curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --dearmor -o /usr/share/keyrings/openresty.gpg
echo "deb [signed-by=/usr/share/keyrings/openresty.gpg] https://openresty.org/package/debian $(lsb_release -sc) openresty" | tee /etc/apt/sources.list.d/openresty.list

1.2 安装 OpenResty

apt update
apt install -y openresty

1.3 上传SSL证书

mkdir ssl-key

上传fullchain.pem和privkey.pem到这个目录/root/ssl-key

1.4 域名解析

别忘了去做好域名解析到这台机器,不然容易出现全部配置完毕,但就是访问不通,万一再遇到脑子没转过弯就容易被劝退

二、配置OpenResty 作为反向代理

默认的OpenResty 配置文件路径为:
/usr/local/openresty/nginx/conf/nginx.conf

我的网站配置放在 /etc/openresty/conf.d/ 目录下

2.1 创建站点配置文件

mkdir -p /etc/openresty/conf.d
vim /etc/openresty/conf.d/tv_a_com.conf

反代内容

server {
    listen 80;
    server_name tv.a.com;

    # 自动重定向 HTTP 到 HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name tv.a.com;

    ssl_certificate /root/ssl-key/fullchain.pem;
    ssl_certificate_key /root/ssl-key/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://100.100.100.100:3200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

2.2 修改 OpenResty 主配置文件并重启服务

vim /usr/local/openresty/nginx/conf/nginx.conf
#在http模块中加入下列内容
include /etc/openresty/conf.d/*.conf;
/usr/local/openresty/nginx/sbin/nginx -t #检查配置
systemctl restart openresty  #重启服务

三、防火墙放行

iptables:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

如果使用ufw:

ufw allow 80/tcp
ufw allow 443/tcp

最后打开浏览器,输入tv.a.com,跳转成功,输入帐号密码就可以愉快的观看了。

jellyfin-load

最后再谈谈为啥我明明本地有NAS了,但还是要自己搞个jellyfin服务呢,主要原因是现在运营商在限制PCDN,导致PT玩家遭到AOE波及。为了避免家里的宽带被限速,现在用这个”吃灰“的独服跑jellfin和pt的服务,独服提供的上行带宽大(共享G口,家里只有100M),只要我搭建好线路机就能家人朋友同时观看而不卡顿,当然只有1TB的硬盘容量只能放当下自己要看的剧,收藏项只能还是放在本地NAS,完美的再一次说服了自己要续费了,挺好。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇