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结果?
请教我.
谢谢.
冰冰.
解决方法
通常,在没有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问题