如何为多个用户设置 XPRA 代理服务器,并使用 Apache 进行反向代理

如何为多个用户设置 XPRA 代理服务器,并使用 Apache 进行反向代理

在 Ubuntu 20.04 LTS 系统上,我想配置“XPRA 代理服务器”以下列方式:

  1. 应该通过其 HTML5 客户端访问 XPRA,这样用户就不需要在其机器上安装 XPRA。
  2. 用户应能够通过 URLhttps://xpra.example.net而不是连接到 XPRA http://example.net:14500。即 XPRA HTML 服务应由 (Apache) Web 服务器进行反向代理,以便将对xpra.example.net虚拟主机的 HTTPS 请求转发到localhost:14500。我找不到有关如何执行此操作的任何描述:很可能必须使用 websockets。
  3. 每个用户都应有权访问自己的图形桌面。我发现,如果我手动启动 XPRA 服务器xpra start-desktop --bind-tcp=0.0.0.0:14500 --start-child=startlxde(对于 LXDE 桌面),那么我确实可以通过 HTML5 客户端进行连接,http://example.net:14500但这很快就会变得笨拙,因为需要先通过 SSH 进入服务器才能在那里运行xpra start-desktop命令。
  4. 代理服务器应作为系统服务启动/停止。确实有一个/lib/systemd/system/xpra.service服务文件,但我不确定它是否针对上述要求进行了正确配置。

我已经尽力从XPRA 文档但失败了。有人用这种方法成功设置了 XPRA 吗?如果有,任何帮助我都会非常感激。

附言我本来想用“xpra”标记这个问题,但没有足够的声誉来这样做。

答案1

我的情况基本相同,只是我想使用 nginx。我认为 xpra 代理服务器可能能够支持这样的设置,但我并不完全确定,ubuntu 20.04 中的版本也可能太旧,无法正常工作。我似乎无法链接两个 xpra 层,也无法控制 Web UI 的作用(例如,当我告诉它连接到现有会话时,它往往会启动一个新会话)。

我最终在 Web 服务器上创建了多个虚拟子目录,每个子目录都代理到不同的上游 xpra 实例。这似乎足够了。

我仍然遇到一些小问题,例如 DPI 有时会混乱,当我通过 systemd 服务启动用户桌面时 PAM 身份验证不起作用,但这些问题可能需要花一点时间才能解决或解决。

相关内容