我们使用 Pharo 和 Seaside 编写了一个小型原型 Web 应用程序,现在我们想向西装展示该应用程序可以部署到我们的标准 Linux 构建中。我们混合使用 CentOS、Ubuntu Server 和 Gentoo,它们是无头运行的,因为我们的大多数应用程序都是基于 JAVA/Apache 的。只有 80 和 443 端口对外开放。
您在托管 Seaside/Smalltalk 服务器端应用程序时有何经验?
it runs great, btw you can get free hosting for your seaside app at:
for more power you'd need your own server of course...
some benchmarks here:
http://gemstonesoup.wordpress.com/2007/10/19/scaling-seaside-with-gemstones/
我只是使用 ssh 隧道在本地机器上显示 X。我使用的是来自荷兰的 slicehost(美国),所以我的 ping 时间为 135 毫秒。这不是很好,但没关系。
下一步将是 Lukas Renggli 的远程帧缓冲包以使用 vnc 查看器。
让我们看看 Miguel Cobá 在 Gemstone 邮件列表中对此有何评论:
如果您已经在机器中安装了 RFB,请使用它。如果您的映像中安装了 RFB 并且可以从您的客户端计算机访问,请使用它
但是,它们都是未加密的。如果要加密,则必须设置隧道(可能使用 ssh 或 TLS)。
我认为这是多余的,因为您必须先使用隧道,然后再使用 RFB。所以我在 linux 中所做的就是安装最小的 X 库,然后将 X 会话转发到我的本地机器。
在服务器中(Debian/Ubuntu 说明):
能力更新
aptitude 安装 xbase-clients
aptitude 安装 xtightvncviewer
从客户端机器测试它:
ssh -X remote_server squeakvm gemtools.image &
这将在服务器上启动 squeakvm 进程,但所有图形都将显示在本地机器上(此特定场景的 Xserver)。
此外,如果您在某些图像上安装 RFB 并无头启动它们,您可以使用 xtightvncviewer 通过 RFB 服务器连接到图像内部。
ssh -X remote_server xtightvncviewer localhost:0 &
这将在远程服务器上运行 xtightvncviewer,但同样会显示在您的本地计算机上。假设您的图像在第一个显示中运行 RFB 的远程服务器中。
这是优点: - 您不必在远程服务器上为 RFB 打开端口 - 您通过 ssh 传输所有加密的内容 - 您只需在远程服务器中按需运行命令。您不必总是让 VNC 运行。- 您可以将图像中的 RFB 配置为仅接受本地主机连接,而不接受来自任何地方的连接。
Martin McClure 建议我看看 NoMachines NX(不那么健谈的 X),但这仍然在我的待办事项清单上。
有关另一组部署说明,请查看Miguels博客
Seaside Book有一章是关于部署的。它描述了我通常如何部署 Seaside 应用程序。
最近博客圈一直在讨论这个问题。
Doug Putnam写下了他在他的 Slicehost 切片上安装 Seaside(在 Pharo 上)的经验,根据James Robertson的文章(我想它使用 VisualWorks,我猜?)。