【问题标题】:Node.js web deploying with a home base server like Apache使用 Apache 等家庭基础服务器部署 Node.js 网络
【发布时间】:2017-01-18 21:05:24
【问题描述】:

我正在使用 Express 框架来构建我的应用程序并 Forever 来部署它,但它似乎不起作用,因为我没有使用互联网上建议的基于云的计算机,就像这段视频中所建议的那样:https://www.youtube.com/watch?v=XxRuW1pfGTI

我想要做的是将我的文件放在我的计算机上的 Apache 服务器的 htdocs 文件夹中,并使用 Forever 之类的工具亲自托管网站并完成它,但我认为我错过了一些东西。

我阅读了 mod_proxy 来反向代理 URL,但我不喜欢这个想法,因为它只是将我的 IP 重定向到 https:/localhost/3000/,这不是最好的方法。

谁能告诉我我做错了什么或如何正确完成?谢谢

Edit1:我的问题真正归结为(如果有道理的话)是:是什么让 node.js /bin/www 文件在“localhost”上监听端口 3000,我该如何更改通过 Apache 连接到我在互联网上的 IP?

var port = normalizePort(process.env.PORT || '3000');

【问题讨论】:

  • 为什么首先需要一个 apache?
  • 我说 Apache 是因为我使用它来部署 PHP 网站,并且它存在于我的计算机上。你有什么建议吗?我会问你为什么不使用 Apache。
  • 但是节点已经内置了服务器。你不能让 apache 为你运行你的 javascript。在这种情况下,除了反向代理,我什么都想不出来。

标签: node.js apache express web-deployment forever


【解决方案1】:

就像您不会通过 Apache 在您的 htdocs 目录中托管 Java 应用程序一样,您不能将 Node.js 应用程序放入您的 Apache htdocs 目录并期望 Apache 启动 Node.js 运行时。当然,它可以与 CGI 脚本和 PHP 一起工作,这分别归功于 mod_cgi 和 mod_php。据我所知,没有 mod_nodejs。

这里有几个选项,包括mod_proxy 之一。听起来您对此的反对基本上是一种审美上的反对。这是一个很好的方法。

另一种选择是完全放弃 Apache 并使用 nginx 反向代理您的 Node.js 应用程序。

有些人可能会建议根本不使用代理,而让您的 Node.js 应用程序成为服务器。我更喜欢使用代理来实现稳健性/安全性。 (见https://stackoverflow.com/a/16770780/436641。)

【讨论】:

  • Some people might suggest not using a proxy at all and just letting your Node.js app be the server. 是的,我该怎么做?并且还使用mod_proxy 对我来说是一个错误,因为我一直在遇到诸如 https:/localhost 和 http:/localhost 之间冲突之类的麻烦
猜你喜欢
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多