在cpanel托管服务器上运行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托管服务器并安装了node.js并运行它.
如果服务器是普通服务器,我可以通过访问’http:// {serverip}:8080’来检查脚本结果.但是在cpanel上托管域和子域,每个域都匹配每个域.甚至http:// {serverip}也不是有效的网址.
如何访问我的node.js结果?
请教我.
谢谢.
冰冰.

解决方法

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服务的默认设置,相对较少的用户熟悉URL中的可选端口号.为了方便用户,您可以使用Apache在端口80上“反向代理”请求到node.js进程正在侦听的端口.这可以使用配置或.htaccess文件中的Apache的RewriteRule指令来完成.对请求的这种反向代理也可以具有其他好处,例如,Apache可能是面向公共互联网的更安全,可靠和可管理的前端.

不幸的是,node.js的这种设置并未得到所有网络托管公司的认可. A2Hosting.com是一家支持它的托管公司,即使是廉价的共享托管产品.他们还在其知识库中清楚地描述了设置过程.

最后,值得注意的是cPanel的开发人员正在开发内置的node.js支持. “如果所有的星星都对齐,我们可能会在第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有关配置Node.js的知识库文章 – https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

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

相关的StackOverflow问题

How to host a Node.Js application in shared hosting

Why node.js can’t run on shared hosting?

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...