【问题标题】:Express.js server with Apache TomcatExpress.js 服务器与 Apache Tomcat
【发布时间】:2015-06-18 06:38:51
【问题描述】:

我正在使用 express.js 在 node.js 中制作一个示例 Web 应用程序。使用 apache-tomcat 作为我的 Web 服务器时,我有点困惑。我有两个疑问:

  1. 当我将 apache-tomcat 作为 Web 服务器运行并且我的 express.js 服务器在端口号 4000 为我提供服务时,它如何知道在哪个端口监听 tomcat Web 服务器。如果我在 localhost 上运行了多个 tomcat 实例,它如何知道要连接到哪个服务器实例。

    app.listen(port, "127.0.0.1");
    
  2. 以及下面这行代码是如何工作的:

    var server = app.listen(4000, function() {
    
        var host = server.address().address;
        var port = server.address().port;
    
        console.log('server listeninig at http://%s:%s', host, port);
    });
    
  3. 如果我们只能使用 express.js 提供 Web 服务,为什么还需要 apache tomcat 或其他 Web 服务器的帮助。

【问题讨论】:

    标签: javascript node.js tomcat express


    【解决方案1】:

    我认为将 express.js(用于 Node.JS 平台的简单 Web 服务器)和 Apache Tomcat(来自 JVM 世界的 Servlet 容器)结合起来根本没有意义。

    我敢打赌,您将 Apache Web ServerApache Tomcat 混淆了。它们是两个完全独立的项目。如果是这种情况,请注意Apache Web ServerNginx HTTP 服务器通常与 express.js 一起使用为reverse proxies。这种组合通常用于满足 PROD 级应用所需的安全性和性能(例如缓存)要求。

    要回答您的问题,请不要将 express.js 与 Apache Tomcat 结合使用。如果您刚开始使用 express.js,请单独使用它。如果它变成一个应该在生产中运行的应用程序,您将需要对其进行操作,这可能包括将其与某些 HTTP 服务器结合起来的考虑。

    【讨论】:

    • 嗨,我仍然对 express 是如何知道在哪个端口上监听 tomcat 感到困惑?
    • 从方程式中清除tomcat。独立的 Express.JS 将为您提供很好的学习目的。
    • 您的应用正在侦听端口 4000,因此当您启动 express 服务器时,会针对 localhost:4000 触发 HTTP 请求
    • 是的,确实如此:) 谢谢
    • 这篇博文使用的是 Apache Web Server(HTTP 服务器),而不是 Apache Tomcat(Servlet 容器)。这两者之间存在巨大差异。
    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 2013-11-27
    • 2011-08-26
    • 2016-12-30
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多