在cpanel托pipe服务器上运行node.js

这是一个简单的node.js代码。

var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type' : 'text/plain'}); res.end('Hello World!'); }).listen(8080); 

我上传到cPanel托pipe服务器上,并安装了node.js并运行它。 如果服务器是正常的服务器,我可以通过访问'http:// {serverip}:8080'来查看脚本结果。 但在cpanel上托pipe域名和子域名,每个域名都与每个站点相匹配。 甚至http:// {serverip}也不是有效的url。 我怎样才能访问我的node.js结果? 请教我。 谢谢。 冰冰。

您可以使用指向该cPanel服务器的任何域,而不是访问http:// server-ip:8080,尝试访问http://domain.tld:8080 。 默认情况下,cPanel不会在端口8080上绑定。请确保检查服务器上是否有防火墙。 如果是,则允许TCP端口8080上的传入连接。根据您的WHM服务器configuration,它也应该使用http:// server-ip:8080

通常情况下,cPanel运行Apache或其他所有cPanel / unix账户之间共享的web服务器。 Web服务器侦听端口80.根据请求的URL中的域名,Web服务器使用“虚拟主机”来确定哪个cPanel / unix帐户应该处理该请求,即在哪个主目录中查找要服务的文件和脚本运行。 如果URL只包含一个IP地址,则cPanel必须默认为一个cPanel帐户。

通常,没有root访问权限,由cPanel帐户运行的作业无法在端口80上侦听。事实上,可用的端口可能是相当严格的。 如果8080不起作用,您可以尝试60000.要访问正在运行的node.js服务器,您需要拥有正在监听的端口号。 由于这是在该服务器上监听端口的唯一工作,因此您应该能够将浏览器指向任何cPanel帐户的域名,甚至是服务器的IP地址,将端口号添加到URL中。 但是,通常使用运行node.js作业的cPanel帐户的域名,例如http://cPanelDomainName.com:60000/

当然,80端口是Web服务的默认端口,相对较less的用户熟悉URL中的可选端口号。 为了使用户更容易,可以使用Apache将端口80上的“代理”请求“反向”到node.js正在监听的端口。 这可以通过在configuration文件或.htaccess文件中使用Apache的RewriteRule指令来完成。 这种对请求的反向代理可以说也有其他的好处,例如,Apache可能是面向公众互联网的更安全,可靠和可pipe理的前端。

不幸的是,这个node.js的设置没有得到所有networking托pipe公司的认可。 一个支持它的托pipe公司,即使在其廉价的共享主机产品上,也是A2Hosting.com。 他们对知识库中的安装过程也有清晰的书面描述。

最后,值得注意的是,cPanel的开发人员正在研究内置的node.js支持。 “如果所有的星星都alignment,我们可能会在68版本的时候看到这片土地,也就是2018年初。

参考

Apache虚拟主机 – http://httpd.apache.org/docs/2.4/vhosts/

Apache RewriteRule指令 – http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

A2Hosting.com关于configurationNode.js的知识库文章 – https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

支持node.js的cPanelfunction请求线程 – https://features.cpanel.net/topic/nodejs-hosting

相关的StackOverflow问题

如何在共享主机中托pipeNode.Js应用程序

为什么node.js不能在共享主机上运行?