这是 Windows 7 Home Premium 版本。
我有两个 ColdFusion 10(更新程序 2)实例:“cfusion”(默认)和“scratch”。
我已经运行了一个 Apache 2.2 的实例。
在 Apache 中,我设置了两个虚拟主机,每个虚拟主机都需要由不同的 ColdFusion 实例提供服务。
每个 CF 实例都可以通过 Tomcat 的内部 Web 服务器很好地提供文件。Apache 也能很好地提供原始 HTML 文件。因此,两个 CF 实例和两个虚拟主机都可以单独正常工作。
我可以让 wsconfig.exe 将其中一个 CF 实例连接到 Apache 服务器,并通过 Apache 和该实例提供 CF 文件。
但是我找不到将第二个 CF 实例连接到 Apache 的方法,因此两个都CF 实例相互连接,每个实例服务于一个虚拟主机。WSConfig 似乎不理解“多个 CF 实例”的概念,并且它对 httpd.conf(通过 mod_jk.conf)所做的更改似乎无法适应多个 CF 实例与单个 Apache 实例或多个虚拟主机通信。我坦率地承认,我对 mod_jk(甚至真正的 httpd.conf)的工作方式没有足够的信心,无法猜测我是否可以更改一些东西来使其正常工作。
如果我尝试使用 WSConfig 添加第二个 CF 实例,我只会收到一条消息“Web 服务器已为 ColdFusion 配置”。不管怎样... 这不是我想要连接的 ColdFusion 实例!如果我删除已连接的实例的现有连接器,我就可以毫无问题地连接另一个实例。这虽然没有帮助,但它表明 CF 实例能连接到 Apache。
在旧版本的 CF 和 JRun 下,这一切曾经相当直接 :-(
我找到的唯一文档是“将 Web 服务器上的多个 Apache 虚拟主机连接到单个 ColdFusion 服务器”页面,但该页面仅专门处理单个 CF 实例。没有针对多个 CF 实例的等效页面。
我有点希望我可以将一些 mod_jk 配置移动到 httpd-vhosts.conf 中的虚拟主机条目中(这是它以前为 JRun 工作的方式),但我不知道将其放在哪里。
我认为我已经涵盖了所有必要的信息?如果没有,请留言,我会添加更多信息。谢谢。
附言:尝试将其具体标记为“ColdFusion-10”,因为答案与以前的 CF 版本不同,但它不允许我这样做,因为我在这个网站上的声誉太低(奇怪的是它没有考虑我在其他 S/O 网站上的声誉……)。如果有足够声誉的人可以添加它,那就太好了:它可能是一个有效的标签。谢谢。
答案1
为开发而进行设置的一个快速方法是将每个 vhost 的请求代理到正确的 coldfusion 实例的 http 端口,也就是它的内部 web 服务器。
<VirtualHost *:80>
ServerName server-1.local
ProxyPreserveHost on
DocumentRoot /interwebs/server-1
DirectoryIndex index.cfm
# proxy requests to tomcat on port 8500
ProxyPreserveHost on
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://localhost:8500/$1$2
</VirtualHost>
<VirtualHost *:80>
ServerName server-2.local
DocumentRoot /interwebs/server-2
DirectoryIndex index.cfm
# proxy requests to tomcat on port 8501
ProxyPreserveHost on
ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://localhost:8501/$1$2
</VirtualHost>
如果你真的想配置 apache 来使用 mod_jk,我相信 wsconfig 就是这样做的(我从来没有安装过 cf10,我只是根据我读过的内容来操作),那么看看http://rob.brooks-bilson.com/index.cfm/2012/2/23/Configuring-Multiple-Instances-of-ColdFusion-10-with-Apache-Virtual-Hosts/