Heim  >  Artikel  >  Backend-Entwicklung  >  在虚拟主机上布署Nodejs的可行性分析 nodejs.org nodejs api nodejs安装教

在虚拟主机上布署Nodejs的可行性分析 nodejs.org nodejs api nodejs安装教

WBOY
WBOYOriginal
2016-07-29 08:52:502287Durchsuche

问题

Godaddy上一个主机可以挂多个网站(比如说PHP网站),那么Node.js的网站是否也可以作为其中一个网站搭在Godaddy上面呢?

虚拟主机实现

要回答这个问题,我们需要先来分析一下虚拟主机的实现方式。以apache为例。
在apache服务器中,虚拟主机是由apache本身就支持的(可以查看:https://httpd.apache.org/docs/current/vhosts/ ),只需要配置apache的配置文件,就可以把多个网站布署在同一台主机上面。

Node.js是否可以同其它网站同时布署在虚拟主机上面?

首先我们要知道,Node.js是自带服务器的(这点跟PHP不一样,PHP只是一个CGI脚本,运行在支持CGI脚本的服务器上面,比如说apache,nginx等)。所以如果要让Node.js运行在Godaddy的虚拟主机上面,那么就不可以使用Godaddy的虚拟主机服务器配置了。就算在虚拟主机上面安装了Nodejs,在cPanel把新域名指定到nodejs文件夹下?但代码是不会运行的,因为这种方式也是主机服务器运行CGI脚本的方式,而Node.js不是CGI脚本而且自带服务器,显然不能由主机服务器运行。所以如果要以简单直接的方式把Node.js布署到虚拟主机上是不可行的。

Node.js布署在虚拟主机上的不正统方式

如果非要布署Node.js到虚拟主机上呢?办法也是有的,但是不正统,最好不用。
方法一:
使用CGI-Node,CGI-Node可以像PHP一样作为CGI脚本运行,在Godaddy上面的配置也已经有教程了,但是它是不符合我们的需要的,它其实是一种PHP编码方式的模拟,不使用Node.js自带的服务器意味着express的框架可能无法用。这种改变编码方式的方法,显然是不能符合我们的情况的。
方法二:
使用服务器代理。apache服务器本身支持代理的功能,可以把特定的请求链接发到另一个链接去处理,然后把处理结果返回(参考:http://stackoverflow.com/questions/9831594/apache-and-node-js-on-the-same-server )。这时我们只需要在虚拟主机把node.js运行在http://localhost:3000下,然后在apache里配置把http://www.example.com/node开头的链接全部代理给localhost:3000,这样,我们就间接地可以让node.js布署在虚拟主机上面了。但问题是,我们要如何去配置虚拟主机的apache配置文件?明显这个很难做到。

总体上来讲,方法二要好于方法一,但都不具有可行性。

结论

如果要把Node.js单独布署在虚拟主机上,那么方法其实跟我们在本地是一样的(当然,我们的虚拟主机要是那种比较高级的可以登录操作系统界面或SSH的虚拟主机)。但如果要跟其它网站比如说PHP之类的,同时布署在同一台计算机上面,如果你能修改服务器配置文件,那么可以参考前面的方法二,如果你不能,那么就几乎没有什么好的方法了。

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了在虚拟主机上布署Nodejs的可行性分析,包括了NodeJS,可行性分析方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn