如何将子域反向代理转发到特定的内部端口?

如何将子域反向代理转发到特定的内部端口?

我正在努力将子域从 WAN 转发到 LAN 上的特定服务。大多数服务都在具有静态 LAN IP 地址的 NAS 上运行。一些服务是 Docker 容器,一些是 NAS 中的原生服务,每个服务都有自己的端口,并且已经通过该端口在 LAN 上正常运行。

我想要的是:

我拥有的:

  • 静态IP:我的 ISP 保证静态 IPv4 + IPv6 地址,所以我知道该 IP 是正确的。
  • 领域:DNS 列表由我的网络托管提供商管理,它指向我家 DSL 连接的静态 IP。我理解这是一个“通配符”域,因此不需要(甚至不可能)对单个子域进行配置。
  • DSL 调制解调器:它具有静态 WAN IP,并配置为“完全开放”,因为我的网关是唯一的 LAN 设备。没有 wifi。
  • 网关:带有 Web 界面的 UniFi USG;它在 WAN 端看到 DSL 调制解调器,在 LAN 端看到我的家庭网络。我可以将所需的外部端口转发到所需的 LAN IP 地址 + 端口:
    from WAN IP * port 80,443 to LAN IP 192.168.1.11 port 80,443
  • 服务器:具有静态 LAN IP 的 Synology NAS 和内置反向代理功能,例如http://bin.example.com --> http://192.168.1.11:7777
    对于每个服务,我可以指定 WAN 协议+主机名+端口、启用 HSTS、启用 HTTP/2 以及内部协议+主机名+端口。
    在此处输入图片描述
  • 服务:例如,以桥接模式运行 Docker 容器(位于主机的 IP 地址上),并向其内部容器端口 80 发布 HTTP 端口 7777。因此, http://192.168.1.11:7777这是我可以从 LAN 计算机访问的服务。
  • Pi 洞:运行 Pi-hole 的 Raspberry Pi。网关已配置此项,LAN 设备为自动 DHCP(具有静态 IP 的 NAS 除外)。

初步结果:

  • 局域网计算机http://example.com:7777/和上同样可以很好地访问服务,http://192.168.1.11:7777/ 但是不是http://bin.example.com/得到错误DNS_PROBE_FINISHED_NXDOMAIN
  • WAN 设备(我的智能手机,带 WiFi离开) 能不是通过任意一个地址访问该服务就会出现错误DNS_PROBE_BAD_CONFIG
  • WAN 设备访问 NAS内置http://example.com//网站上的服务https://example.com/(标准端口 80 和 443)。

答案1

听起来你没有做任何反向代理操作。

反向代理通常由 Web 服务器软件完成。许多高级 Web 服务器(nginx、Caddy、Apache)允许您设置虚拟主机,这些虚拟主机除了将流量转发到其后面的某个服务器外,不执行任何操作,并且允许您为目标指定端口。

nginx 具有缓存功能,并且以速度非常快而闻名,因此经常用于此目的。

因此你可以安装 nginx 并配置它,为您的每个服务创建一个虚拟主机。

nginx 需要花一些时间才能真正学会,但它的功能非常强大。

相关内容