当前位置: 首页 > 面试题库 >

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

欧阳勇
2023-03-14
问题内容

这是一个简单的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结果?请教我。谢谢。bingbing。


问题答案:

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可能是面向公共Internet的更安全,可靠和可管理的前端。

不幸的是,并非所有网络托管公司都认可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

cPanel的功能要求主题为node.js的支持- https://features.cpanel.net/topic/nodejs-
hosting



 类似资料:
  • 我曾尝试在CentOS Web Panel(CWP)中使用应用程序的单个帐户托管laravel 5.1应用程序。我不想在一个帐户中托管多个站点。我已经在中设置了我的站点 我的结构是 我已经尝试使用这些解决方案: https://laracasts.com/discuss/channels/general-discussion/where-do-you-set-public-directory-la

  • 我需要一些上传图像的帮助。 我有两个不同的申请 在我的专用服务器上运行的Springstart应用程序 Angulal-6 Application-在我的云服务器上运行 我需要从我的spring boot应用程序上传一个图像到Angular-6资产文件夹(资产文件夹类似于spring boot应用程序的资源文件夹) 在application.properties我已经声明上传位置,如profile

  • 问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行

  • 为什么我不能多次打这个电话? 在下面第二次使用时崩溃....和不回收有关吗?

  • 但是所有的答案和评论对链接帖子的回应也没有太大帮助

  • 问题内容: 很抱歉这个新手问题。node.js可以在任何托管提供商(如Fastdomain)中运行吗?我们在fastdomain中有一个帐户,我们在其中上传了用PHP制作的网站。我在主机中允许使用SSH,并尝试安装node.js,但无法正常工作。我一直在搜索互联网,但对此没有确切答案。 问题答案: 不,您不能在每个托管服务提供商上运行Node.js。您需要某些基本功能。如果您的托管服务提供商不像H