我拥有一台运行whm / cpanel的服务器,我最近一直在尝试使用node.js.我有一个小节点测试服务器正在运行,我想指向一个域。到目前为止,我一直在使用whm来创建帐户并处理域名,但这是一个不同的场景,当我有多个其他域指向其他域时,我对如何使域指向我的服务器上的某些内容知之甚少。我的服务器上同时有不同的东西。
由于
答案 0 :(得分:1)
好的,我从未尝试过这个,但你可以在.htaccess文件中使用重写规则并重写所有内容以转到端口8000,你的node.js服务器在那里运行。
首先,设置node.js服务器以侦听端口8000。
然后,在cpanel中正常创建您的域,并在doc root中添加一个带有此重写的.htaccess文件:
RewriteRule ^ "\ http: \ / \ / 127.0.0.1 \:% (8000) REQUEST_URI" [P, QSA, L]
这应该只是将内部的所有内容转发到端口8000,其中node.js将负责处理它。但我不知道持久连接/ websockets如何与此策略一起使用。在这些情况下,通过直接访问服务器上的端口8000来跳过apache可能会更好。
答案 1 :(得分:0)
这有点棘手,因为cpanel将使用apache来配置域,而apache已经毫无疑问地占用了端口80,因此你无法在apache和node.js之间共享端口80。您将无法通过cpanel配置此功能。
您可以将域指向您的服务器,并让节点侦听另一个端口,例如8000。
因此apache / cpanel处理对端口80和443的请求,节点处理对端口8000的请求。
很可能在一个盒子上运行多个Web服务器,但它们每个都需要自己的端口
答案 2 :(得分:0)
我设法这样做了:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} !^3000$
RewriteRule ^ http://%{HTTP_HOST}:3000%{REQUEST_URI} [P,QSA,L]
</IfModule>
其他任何事情对我都不起作用:(
在这里,我检查端口是否不是3000,如果协议不是https,那么我将域指向端口3000(您可以将您使用的端口与node.js放在一起),您可以删除RewriteCond %{HTTPS} !=on
in如果你不在乎检查协议。
我在本地做一些R&amp; D但是在制作中我相信我会使用nginx +节点而不是apache。