【问题标题】:How to run node.js in my web site server not my pc local server如何在我的网站服务器而不是我的电脑本地服务器中运行 node.js
【发布时间】:2015-05-23 23:42:08
【问题描述】:

过去 2 天我花了更多时间阅读 50 多篇文章和视频以了解 node.js,安装后现在我可以通过http//:localhost:3000/ 在浏览器中看到结果但我在很多情况下感到困惑,我在下面描述。

我的所有工作都在我的共享托管服务器上完成,我在其中保存我的网站:www.myweb.com

在每篇关于 node.js 的文章中,他们都在教如何在本地 PC 服务器中通过 http//:localhost:3000/ 在浏览器中通过以下代码获取结果。

test.js

var http = require('http');
http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(3000);
console.log('Server running at http://localhost:3000/');

但我的问题:

  1. 如果我在浏览器中使用http//:www.myweb.com/test.js`,上面的代码会是什么?

  2. 如果是本地电脑,我们写在npm node test.js,但是如果是托管服务器,当任何clint 像http//:www.myweb.com/test.js 这样打开页面时如何工作呢?

  3. 在 php 的情况下,我们使用 include ("head.php") 从该页面获取某些内容,但在这种情况下,如何调用 node.js。

【问题讨论】:

  • 转到http://www.myweb.com:3000

标签: javascript php node.js


【解决方案1】:

好吧,您需要做的是了解 http Web 服务器的工作原理。

通常,在您的远程计算机(您的服务器)上,您有一个正在运行的 Web 服务器实例(例如:apache),它正在侦听端口 80(http 请求的标准端口)。它将处理在该端口上发出的每个请求,并管理路由以使用正确的 php/html 文件。

然后,它将运行 php 代码服务器端,以呈现一个 html 文件并将其提供给服务器。所以客户端根本看不到php代码。

让我们来谈谈 Node.js。 Node 是一个在服务器端运行 javascript 代码的应用程序,可以使用一些模块运行一个 http 服务器。但是javascript代码永远不会显示给您的客户,他只会得到您发送给他的http响应(通常是html页面)。

所以现在,使用 node.js,您需要通过创建 http 服务器来执行与 apache 服务器相同的操作。首先,您必须知道的是,提供 node.js 甚至控制台访问的网站主机并不多。他们通常提供你放在配置文件夹中的 php/html 文件,基本上就是这样。你需要的是一个虚拟机,或者一个可以安装 node.js 并运行它的服务器,或者使用一个 node.js 托管服务,比如 heroku 或 nodejitsu 来托管你的 node.js http 服务器。

因此,要创建 node.js http 服务器,您需要创建一个 http 服务器(就像您在代码中所做的那样),并使其监听端口 80。现在,将处理发送到您服务器的每个 http 请求通过您的 node.js 实例。然后,您可以对该请求做任何您想做的事情。

我希望我没有变得凌乱。

【讨论】:

  • 如果共享托管服务器提供商不支持 node.js。请问在共享托管中的替代方式是什么?
  • 好吧,您有几种不同的可能性:使用任何服务器提供商都支持的 php |使用 node.js 服务器提供程序 |将请求从现有的 http 服务器重新路由到 node.js 服务器但要明确的是,如果要使用 node.js,则需要在某个地方运行 node.js 实例。
  • 另一种选择是从您的 apache 服务器加载静态网页,并使用 ajax 或 Web 套接字请求从运行在其他地方的 Node.js 服务器动态加载资源。
  • 拥有任何支持 node.js 的免费网络服务器。我很难过,因为经过长时间的尝试,我无法继续使用 node.js。非常感谢。
  • 我没有使用过免费的 node.js 托管,但我认为红帽在 openshift 上提供了一些免费托管。你可以看看这个:openshift.com/products/pricing
【解决方案2】:

您需要在服务器上安装 NodeJS。如果这是您无法安装其他软件的共享主机,那么您将无法使用 NodeJS。在这种情况下,请联系您的网络托管公司的支持并询问 NodeJS 支持。

另一方面,如果您在系统上确实拥有 root 用户或超级用户权限,则可以安装 NodeJS。例如,在 CentOS/RHEL 系统上,您可以使用 yum 和以下命令进行安装。

sudo yum install epel-release
sudo yum install npm

对于其他一些 Linux 发行版:http://ask.xmodulo.com/install-node-js-linux.html

要从您的 PC 访问 Node 应用程序到服务器,您还需要在服务器防火墙中打开一个您的 Node 应用程序使用的端口。

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 2014-06-17
    • 2015-02-08
    • 1970-01-01
    • 2022-07-09
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多