apache - 如何将本地主机应用程序服务器从 Apache httpd 更改为 ColdFusion 10 中内置的 Tomcat?

标签 apache session tomcat coldfusion

背景故事:几年前,我的团队将运行 coldfusion 的服务器从 IIS 改为 Apache。我更改了我的开发环境以在 Apache httpd 上运行 CF,一切都很好。后来我们将 session 变量更改为 j2ee,但我一直无法让 j2ee 在 dev 上工作,所以我仍然在 dev 上使用常规 session 变量。最近我在测试中遇到 session 持久性失败,但我无法在开发中重现。在寻找测试和开发之间 CF 服务器设置的差异时,我发现测试在 Tomcat 上运行,而开发在 Apache httpd 上运行。

我的问题真正的问题是如何让 j2ee session 变量在 dev 上工作。我现在的问题是如何将服务器从 Apache httpd 更改为 CF 10 内置的 Tomcat?有没有一种方法可以在不重新安装 CF 10 的情况下执行此操作,因为这些是我能找到的唯一说明?

系统:Windows 7

最佳答案

IIS 和 Apache 不是(无论如何对于 Coldfusion)应用程序服务器。它们是您的前端 Web 服务器。此设置中的“应用程序服务器”是通过 servlet 运行 Coldfusion“应用程序”的软件,即 Tomcat。

虽然可以使用 CF 的内置 Tomcat 服务器作为前端 Web 服务器,但不建议这样做,而且几乎可以肯定这与您的问题无关。 Apache 完全可以满足您的需求,而 J2EE session 变量的问题将与您的 JVM(您使用的版本与生产服务器或多或少相同吗?)或 Tomcat 本身有关。

想想 J2EE session 是如何工作的。请求进入并到达您的前端服务器 (httpd),它可能通过 mod_proxy 或 mod_jk 将该连接移交给 Tomcat。在这种情况发生之前,您的系统甚至运行 JVM 都无关紧要——Apache 和 IIS 都不关心 Java。我不会说 Apache 问题不可能影响您的 session 变量,但它在我的嫌疑人名单中的位置很低。

一旦 Tomcat(然后是 CF)参与其中,您的 JVM 就会完成所有工作,这就是我要查看的地方。我还会查看 CF 日志和 Tomcat 日志。

但是,为了正确回答您的问题,如果您想从循环中删除 Apache,您正在查看/cfusion/runtime/conf 中的 Tomcat 的 server.xml 和 web.xml - 您需要它在端口上运行80(或者重新配置 Apache 以将所有请求传递给 Tomcat 而不是仅传递给 CFML,但这并不能真正满足您的要求,因为 Apache 仍然参与其中)。您还必须在 Tomcat 中重现整个 Apache 配置,我从未这样做过,也不推荐这样做,但这是您需要研究的方向。

更好地解决您的 session 问题。杀死 Apache 在这里只是附带损害。

关于apache - 如何将本地主机应用程序服务器从 Apache httpd 更改为 ColdFusion 10 中内置的 Tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40478219/

相关文章:

php - REMOTE_ADDR 为空,不包含在 SERVER 数组中

mysql - Kontakt ibeacon 的 RSSI 统计设置为 Eddystone 格式

java - Spring MVC : session beans from two different sessions

PHP session 未在终端中正确显示

node.js - Node +express session 数据

java - 如何通过maven将java jar文件部署到远程服务器

tomcat - Apache Tomcat 7 中的 Dorg.apache.el.parser.COERCE_TO_ZERO

java - 如何让Apache托管的公共(public)网页访问同一网络上的私有(private) Node 服务器?

javascript - 使用 CGI 方法通过 Web 服务器将参数从 JavaScript 传递到 Perl 脚本

tomcat - 在 jboss 6.4 中找不到 stomp/sockjs 404 错误