Cpanel上的Express / NodeJS应用程序

时间:2019-01-02 18:26:35

标签: mysql reactjs apache express virtualhost

好,所以我有一个带有Node / Express API的应用程序,并且在localhost上一切正常。我试图弄清楚如何使所有运行在Apache上的CPanel正常工作。客户端的东西,但我无法从备份中获取任何数据。我已经搜索并查看了,是的,但是我仍然不确定如何解决这个问题。我必须使用虚拟主机吗?如果是,我需要执行哪些具体步骤?

2 个答案:

答案 0 :(得分:1)

NodeJS不能在Apache或Nginx上运行。在这些Web服务器上,您所能做的就是设置反向代理。

NodeJS拥有自己的Web服务器。 cPanel在这方面无济于事,因为您只需要在服务器上安装NodeJS(您必须具有SSH access-root),然后从那里运行它。您可以守护您的Node进程以继续运行PM2或Forever(NPM软件包)安装。

这是一个很好的答案(在询问之前进行搜索,然后才能解决问题)。

Run node.js on cpanel hosting server

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的更安全,可靠和可管理的前端。

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

有关配置Node.js的A2Hosting.com知识库文章-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?

值得指出的是(截至2019年初)NodeJS还没有支持cPanel

答案 1 :(得分:0)

您可以使用SSH访问cpanel的终端吗?

您可以确认服务器中是否安装了nodeJS?