Skip to content

核心概念

用大白话解释 nginx-reverse-emby 涉及的关键概念。如果你刚接触反向代理,建议先花 5 分钟读完这一页,后面上手会快很多。

什么是反向代理?

你访问 app.example.com,实际看到的是另一台机器上的服务。反向代理就像一个「前台」——访客只和前台打交道,前台再悄悄把请求转给后台真正的服务。

text
访客 → app.example.com(你的 VPS)→ 真正的服务(后端地址)

这对 Emby、Jellyfin 以及任何 Web 服务都适用。

域名和 DNS

域名就是你在浏览器地址栏输入的东西,比如 app.example.com

DNS 负责把域名翻译成 IP 地址。你需要在 DNS 服务商(Cloudflare、阿里云 DNS 等)那里添加一条记录,把域名指向你的 VPS IP。

一句话总结:域名要解析到 VPS,VPS 要放行端口,端口要对到规则。 三件事都做对了,反向代理就能跑通。

控制面和 Agent 节点

nginx-reverse-emby 由两个角色配合工作:

角色是什么干什么
控制面Docker Compose 拉起的那个容器存放所有配置、提供面板界面、管理证书和流量统计
Agent 节点实际执行代理规则的进程监听端口、转发流量、申请证书、上报流量

Docker Compose 启动后自带一个 local Agent——它和控制面跑在同一台机器上。如果你只有一台 VPS,所有规则选 local 就够了。

有多台服务器时,可以在其他机器上安装 Agent。Agent 会主动连接控制面拉取配置(心跳拉取模式),所以即使 Agent 在 NAT 或内网后面也能正常工作。控制面永远不会主动连 Agent。

规则、端口和证书

规则告诉 Agent「哪个入口转发到哪个后端」。

  • HTTP 规则:按域名转发,能理解 HTTP 协议。适合 Emby、Jellyfin、网站等 Web 服务。
  • L4 规则:按端口转发,不关心协议内容。适合 TCP/UDP 服务、游戏服务器、数据库。

端口是 VPS 上对外开放的「门牌号」。你创建规则时指定的端口,必须在云防火墙和系统防火墙中放行,外部访客才能进来。HTTP 默认用 80 端口,HTTPS 默认用 443 端口。

证书用来启用 HTTPS(地址栏的小锁图标)。控制面可以通过 Let's Encrypt 自动申请免费证书,也可以上传你自己的。证书有 90 天有效期,控制面会自动续期,不用你操心。

Relay 隧道

Relay 是在 Agent 之间建立的一条加密通道。流量先经过一个中继节点,再到后端:

text
访客 → VPS_A(入口 Agent)→ 中继节点(Relay 隧道)→ VPS_B(出站 Agent)→ 后端

适合这些场景:

  • 入口节点无法直连后端(比如后端在内网)
  • 想利用中继节点的线路优势
  • 需要多层转发

没有以上需求的话,暂时不用管 Relay。

下一步

概念理清了,可以动手了:

基于 GNU General Public License v3.0 发布。