我已经与 ColdFusion 合作了很长时间。在我的脑海中已经植入的东西是,为了获得最大的安全性,您应该将 Web 服务器与 ColdFusion 服务器物理分离。所以我一直使用 Adobe 所说的“分布式模式”来完成这项工作。IIS 在一台服务器上,而 ColdFusion 在另一台服务器上。它们像往常一样通过网络连接器进行通信,尽管是通过网络进行的。
几年来,我遇到过一些帖子,其中提到使用反向代理与在分布式模式下运行一样安全。通过反向代理设置,Web 服务器和 ColdFusion 服务器位于同一台物理机器上,但有一个代理服务器处理请求并充当 Web 服务器(基本上)。仍然在我的脑海中,我认为物理分离更安全。
在互联网上很难找到任何明确的建议。即使在ColdFusion 11 文档中仍然提到分布式模式-有关 Web 服务器配置工具的更多信息,包括有关多宿主和分布式使用的信息,请参阅配置和管理 ColdFusion 指南. (尽管在引用的页面上并没有太多关于它的信息。)这两种设置似乎都在各种博客和帖子中提到,但我发现人们使用反向代理设置而不是分布式模式设置更常见。没什么具体的,只是我在网上搜索时的看法。在分布式模式下运行,Web 服务器和 ColdFusion 服务器在不同的服务器上,在设置时肯定会增加一层复杂性。静态文件位于 Web 服务器上,CFML 文件位于 ColdFusion 服务器上。等等。当您使用第三方产品时,这可能很难正确配置。
所以我的问题是,假设其他一切都相同,为了最大的安全性,您使用分布式模式还是反向代理设置?还有一些你这样做的原因。
不幸的是,ColdFusion 锁定指南混淆了这件事。这是我发现的。
在ColdFusion 9 锁定指南(第 14-15 页)中,它指出:
您也可以考虑在分布式模式下安装 ColdFusion。这允许 Web 服务器驻留在与 ColdFusion 服务器物理分离的服务器上。您还可以将多个 Web 服务器连接到单个 ColdFusion 服务器(这在 ColdFusion 9 文档中称为多宿主)。这种分离可以提供额外的安全性,应该在需要最大安全性的环境中考虑。要安装分布式模式,请选择内置 Web 服务器选项。有关配置分布式模式的信息,请参阅http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.html。有关多宿主的详细信息,请参阅http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html。
将面向公众的 Web 服务器和 ColdFusion 服务器分开的另一种方法是使用反向代理。在反向代理设置中,ColdFusion 服务器仍然安装了 Web 服务器,但所有外部客户端请求都由代理服务器处理,并且某些请求会发送到 ColdFusion 服务器进行处理。
在ColdFusion 10 锁定指南(第 27 页)中,该声明被精简为:
为了获得最大的安全性,请考虑在单独的物理服务器上运行 Web 服务器和 ColdFusion。将面向公众的 Web 服务器和 ColdFusion 服务器分开的一种方法是使用反向代理。
在反向代理设置中,ColdFusion 服务器仍将安装 Web 服务器,但是所有外部客户端请求都将由代理服务器处理,并且只有特定请求将发送到 ColdFusion 服务器进行处理。请查阅您的 Web 服务器文档以设置反向代理。
在ColdFusion 11 锁定指南中也没有提及。似乎它应该在第 11 页或附近,这是语句在其他文档中的位置以及运行 Web 服务器配置工具的位置。我很好奇为什么皮特从最新的文件中删除了这个。
当我使用 Adobe ColdFusion 时,我也用 Railo 标记了这个问题以获取更多信息。