![如何管理多个最终用户风格的本地主机应用程序?](https://linux22.com/image/1118669/%E5%A6%82%E4%BD%95%E7%AE%A1%E7%90%86%E5%A4%9A%E4%B8%AA%E6%9C%80%E7%BB%88%E7%94%A8%E6%88%B7%E9%A3%8E%E6%A0%BC%E7%9A%84%E6%9C%AC%E5%9C%B0%E4%B8%BB%E6%9C%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
随着时间的推移,我安装了提供或需要通过本地主机上的浏览器运行界面的应用程序(例如,传输 Web 界面,StackApplet 配置,Veracity 网络界面)。我还开发通过本地主机测试的软件。
当然,所有这些应用程序都必须在不同的端口上运行,如果发生冲突,我必须通过配置相关应用程序来解决它们。但我没有可用于以下操作的本地主机“管理器”:
- 要求应用程序自行注册(例如端口分配)
- 记录端口分配(如果底层应用程序没有注册自身的功能)
- 启动/停止 Web 服务
- 控制网络/互联网上其他机器的端口访问
- 我还没有想到的其他事情;)
随着越来越多的终端用户式应用程序提供 Web 界面,看来我最终会为自己运行一个小型多应用程序 Web 服务器。我该如何(轻松地)管理它?
答案1
Juju 非常适合此用途,主要原因是,通过本地提供商,每个应用程序都将位于自己单独的 LXC 容器中,因此它们可以相互隔离。
Juju 将负责管理这些服务(启动和停止)以及端口注册。大多数 charms 允许您设置要监听哪个端口的配置选项,以便您可以让这些服务井然有序、井然有序。
另一个优点是,当您完成开发后,可以将这些应用程序推送到另一台机器/云端。
缺点是开销,你真的需要一个完整的容器来用于你的 torrent 网络界面吗?等等。但另一方面,如果它们都共享一个 mysql 实例,那么这可能更有意义。
控制网络上其他机器的端口访问会比较棘手,本地提供商的设计初衷是让您从本地机器开发这些应用程序,而不是让网络上的其他机器访问这些服务,但是如果您知道如何正确配置 LXC 网络,您应该能够做到这一点。另请参阅:
- 如何在本地服务器上运行 Juju?
- https://jujucharms.com/docs/stable/clouds-LXD
- Ubuntu 14.04 LTS 中的 Juju 与 KVM 和 LXC(以可部署到云的形式在笔记本电脑上运行 MediaWiki 的示例)
答案2
沙暴是一个自称为“个人云平台”的平台,用于“自托管联合 Web 应用”。换句话说,这是一个专门为这种用例设计的平台。
截至撰写本文时(2014 年 8 月):
- 它仍处于开发阶段(功能齐全,但例如,尚不能保证沙盒)
- 尚未有 PPA 或 .deb 安装过程(使用安装脚本)
- 要求应用程序进行适当移植
- 已经 (有点儿)支持 Mailpile(让我想到这个的应用程序之一)以及 Tiny Tiny RSS、MediaGoblin和别的
- 似乎不太可能移植较少共享/联合应用程序(例如 StackApplet 配置)
- 没有 Juju 那样的从笔记本电脑到公有云的移植用例