我有一台 IIS 服务器,运行独立安装的 ColdFusion9,其中包含许多客户站点。为了实现高可用性,我尝试将我的 Web 服务器连接到外部集群多实例 ColdFusion 服务器。
在测试中,我发现我必须将 .cfm 文件从我的 Web 服务器复制到外部服务器的实例目录中。这在我的生产站点上是不可能实现的。有没有办法利用外部 CF 服务器,而 .cfm 文件驻留在 Web 服务器上?
答案1
我不知道如何做到这一点,尽管我将 CF 放在与 Web 服务器不同的服务器上的经验有限。本质上,当请求被交给 CF 时,CF 引擎需要访问正在执行的 .cfm 文件,这就是为什么您需要为执行它们的实例提供它们的副本。这就像尝试通过远程桌面执行程序,只不过程序所需的 DLL 不是安装在该远程系统上,而是安装在您自己的机器上。除非程序的 DLL 安装在运行它的机器上,否则该程序无法运行。同样,对于 CF,引擎/实例需要有 .cfm 文件的副本才能执行它们。
您也可以尝试在 houseoffusion.com 上的 cf-talk 邮件列表上提问,因为那里的一些 CF 服务器向导可能不会在 serverfault 上查找。
答案2
事实确实如此。我相信 Web 服务器连接器只是将要执行的文件的文件系统路径以及各种 Web 服务器环境变量传递给 CF 服务。
您可以随时:
1) 将所有 CF 文件保存在 SAN 卷或网络共享上,并将该卷安装到 CF 服务器上,或者 2) 使用某种文件同步服务在服务器之间同步文件
1) 的优点是您可以将文件系统以只读方式挂载作为安全措施....您的 CF 服务器很少甚至根本不需要对您的应用程序文件具有写权限。