如果服务器上有多个Coldfusion实例,则在群集服务器环境中,您如何引用它?例如,如果我们有多个服务器,并且我们想要找出我们使用Web调用的服务器,我们可以使用#CGI.Server_Name#,它将提供我们正在服务的服务器的IP地址。我要问的是我们如何在给定服务器上分辨出我们所处的Coldfusion实例。
答案 0 :(得分:2)
我使用的两种方法是在响应中包含HTTP标头,或者输出服务器名称的HTML注释,以便您可以使用调试工具查看它。
不,关于实例的具体问题,您还没有说过您正在使用的CF引擎,所以我不能保证此代码适用于所有版本,但这是我过去在基于JRun的Adobe ColdFusion版本中使用的:
instanceName = createObject("java", "jrunx.kernel.JRun").getServerName();
这个shuold适用于较新的,基于Tomcat的CF版本(10 +)
instanceName = createobject("component","CFIDE.adminapi.runtime").getinstancename();
这是我在Railo / Lucee上使用的
instanceName = getRailoId().server.id;
instanceName = getLuceeId().server.id;
要作为注释输出,请在布局顶部添加类似的内容。注意,这只能用于返回HTML的响应,而不是JS。例如。
<!-- CF Instance: #instanceName# -->
或者像这样添加HTTP标头:
<cfheader name="CF-Instance" value="#instanceName#">