Roxen Challenger HTTP Web 服务器
制造商:Idonex
电子邮件:info@idonex.com
网址:http://www.roxen.com/
价格:795 美元(Idonex 许可证),1.2 beta 版本(GPL)免费下载
评论员:Michel Pelletier
Roxen Challenger HTTP Web 服务器是超越时代的奇迹。对于一个 Web 服务器来说,与 Apache HTTP 服务器的巨大成功相比,这是一个大胆且难以证明的说法。在您停止阅读之前,您应该考虑到拥有两个略有不同但都非常优秀的工具并没有什么问题。
Apache 从一开始就被设计成一个简单、开放、安全、高性能的 HTTP 服务器,并且在这方面做得非常出色。对于几乎所有习惯了 NCSA CERN 或像 Netscape 这样的商业 HTTP 服务器的网站管理员来说,Apache 是自然的选择。然而,Apache 的配置并不是非常直观,问题在于配置是三个扁平的文本文件。Apache 还存在单体结构的问题(尽管插件模块化是一个新的选项,如果您将其编译进去),这需要在进行更改或添加模块(例如代理、数据库访问等)时重新编译源代码。
Roxen 对 HTTP 服务器设计采用了不同的方法。Roxen 易于安装和配置。用户只需在解压缩 tar 文件并阅读 README 文件后执行正常的 ./configure 和 make 序列即可。这在我使用的 Intel Red Hat 4.2 和 5.0 机器上完美运行了十几次。在编译 Pike 解释器(我们稍后会介绍)之后,安装脚本会告诉您将浏览器指向 https://:x/,其中 x 是配置界面服务器监听您的浏览器的某个随机未分配端口。
将浏览器指向该 URL 会打开在线的、以 Web 为中心的配置界面。第一个屏幕设置后续配置会话的配置、用户和密码信息。立即可以添加虚拟服务器,并且添加虚拟服务器非常容易。我通常的步骤是找到一个空闲的 IP 并将 hostname.domain 绑定到它。接下来,我使用 netcfg 创建别名以太网接口,指定所选的 IP。我切换到 Roxen 配置界面,并使用简单的点击菜单,添加一个新的服务器,将其绑定到刚刚创建的接口。Roxen 会自动检测到这一点并为我执行反向查找。瞧——我得到了一个即时虚拟服务器。整个过程比煮一杯咖啡还快。
在创建服务器时,Roxen 会询问有关所需服务器类型的问题。选项包括 Bare Bones、Standard、IPP(互联网呈现提供商)、Proxy 或系统中任何当前服务器的配置副本。这在处理不仅仅是几个虚拟服务器时提供了很大的灵活性。
四个选项中的每一个都是每个服务器的一组已加载模块。模块可以混合和匹配以创建自定义服务器。模块也用 Pike 编写,可以动态加载和卸载,并且所有模块都有一个标准的配置界面,可以插入到服务器配置界面中。模块包括文件系统、身份验证、数据库访问、CGI 和 FCGI 执行、动态图形处理等等。
那么,这个出色的服务器是如何组合在一起的呢?Roxen 是用 Pike 语言编写的。Pike 是一种解释型的、线程化的、类似 C 的语言,它基于一种用于 MUD 系统的较旧的编程语言。Pike 已经完全开发,并具有优雅、简洁的风格,非常像 C,任何 C 程序员都可以在几分钟内掌握它。这使得编写自定义 Roxen 模块变得轻而易举。Pike 的主页有优秀、智能的文档,这些文档完全交叉引用,并包含一个方便的功能索引,可以在其中找到许多来自 ANSI C 库的熟悉的老伙计。
缺点是 Pike 作为一种字节码解释语言,比编译和优化的 C 语言慢很多。Roxen 1.1 也有些错误,而 Roxen 1.2 仍处于 beta 阶段。我试用过 1.2 版本(它的安装与 1.1 版本一样干净),发现它非常酷,有很多新模块,其中一些模块在 Apache 中不可用,例如动态向导生成器和 SQL 检索数据的自动表格格式化。一个新的更新模块会联系瑞典的 Roxen 中央服务器,并将服务器和所有模块升级到最新的调试版本,并提供下载 Idonex 创建的任何新模块。1.2 版本还使用了最新 Pike 版本中内置的新线程,提高了其在高负载或异常负载系统中的性能,并允许它利用多处理器系统。
Roxen 集中最强大的模块是 Roxen 标记语言 (RXML)。RXML 看起来像 HTML,它直接写入 HTML 代码中。当客户端从服务器检索文档时,服务器首先解析文档中的 RXML 标签,根据使用的标签更改 HTML 输出。这基本上是服务器端脚本,类似于 Apache 中的服务器端包含,但更简洁。例如
<html> <head> <body> <if user=jane> <gtext scale=0.5 nfont="arial" fg="blue" bg="white">Hi there Jane.</gtext><br> <else> <h1>Hey get outta here!</h1> </if> </body></head></html>
<if><else></if> 结构根据获取页面的客户端是否已将自己验证为用户 jane 来输出不同的 HTML。<gtext> 标签获取文本并动态渲染其 gif 图像,将 <gtext> 标签替换为 <img> 标签,其 src 是生成的图像。gtext 有许多选项可用,包括透明度、大小、斜面、自动 Javascript 鼠标响应等等。请查看 Roxen 的主页以获取示例,或美国创伤外科协会的网页,我在其中广泛使用了 gtext 和 RXML。
Roxen 极其易用和模块化,使其成为满足各种需求的网站管理员的强大工具。Roxen 和 Pike 的 GNU GPL 许可证使价格非常合理。像所有优秀的 GPL 软件一样,Pike 和 Roxen 都有一个活跃、敏锐的 Pike 程序员和 Roxen 爱好者社区作为后盾,他们渴望帮助您解决问题。Idonex 还以非常合理的价格提供各种级别的支持。Roxen Server 预先包装了 Idonex 提供的手册和其他非 GPL 赠品(如 128 位 SSL)。
本文最初发表于 LinuxGazette.com 的第 31 期,LinuxGazette.com 是以前由 Linux Journal 出版的在线电子杂志。
Michel Pelletier 多年来一直在 ISP 业务中搞坏 Linux 机器。他的偶像是 K&R、哥德尔和艾灵顿公爵。当不在山区时,可以在 michel@colint.com 找到 Michel。