在 Ubuntu 20.04 LTS 系统上,我想配置“XPRA 代理服务器”以下列方式:
- 应该通过其 HTML5 客户端访问 XPRA,这样用户就不需要在其机器上安装 XPRA。
- 用户应能够通过 URL
https://xpra.example.net
而不是连接到 XPRAhttp://example.net:14500
。即 XPRA HTML 服务应由 (Apache) Web 服务器进行反向代理,以便将对xpra.example.net
虚拟主机的 HTTPS 请求转发到localhost:14500
。我找不到有关如何执行此操作的任何描述:很可能必须使用 websockets。 - 每个用户都应有权访问自己的图形桌面。我发现,如果我手动启动 XPRA 服务器
xpra start-desktop --bind-tcp=0.0.0.0:14500 --start-child=startlxde
(对于 LXDE 桌面),那么我确实可以通过 HTML5 客户端进行连接,http://example.net:14500
但这很快就会变得笨拙,因为需要先通过 SSH 进入服务器才能在那里运行xpra start-desktop
命令。 - 代理服务器应作为系统服务启动/停止。确实有一个
/lib/systemd/system/xpra.service
服务文件,但我不确定它是否针对上述要求进行了正确配置。
我已经尽力从XPRA 文档但失败了。有人用这种方法成功设置了 XPRA 吗?如果有,任何帮助我都会非常感激。
附言我本来想用“xpra”标记这个问题,但没有足够的声誉来这样做。
答案1
我的情况基本相同,只是我想使用 nginx。我认为 xpra 代理服务器可能能够支持这样的设置,但我并不完全确定,ubuntu 20.04 中的版本也可能太旧,无法正常工作。我似乎无法链接两个 xpra 层,也无法控制 Web UI 的作用(例如,当我告诉它连接到现有会话时,它往往会启动一个新会话)。
我最终在 Web 服务器上创建了多个虚拟子目录,每个子目录都代理到不同的上游 xpra 实例。这似乎足够了。
我仍然遇到一些小问题,例如 DPI 有时会混乱,当我通过 systemd 服务启动用户桌面时 PAM 身份验证不起作用,但这些问题可能需要花一点时间才能解决或解决。