使 Node.js 应用程序端口无法在其他域上访问

使 Node.js 应用程序端口无法在其他域上访问

我有一台服务器,其中使用 Parallels Plesk 作为服务器控制面板,安装了 apache2(带有 mod_proxy 和 mod_http_proxy)、nginx 和 Node.js。在这台服务器上,我有多个域和子域,但只有一个 IP。

如果我在例如端口上启动一个节点应用程序,它将1337可以通过此端口在此服务器/IP 上的所有域和子域上进行全局访问。(domainA.com:1337,,sub.domainA.com:1337domainB:1337

通过 Plesk,我可以更改 的 apache2 vhost.conf domainA.com。我可以使用以下代码将 的端口 80 路由到 的端口 1337 domainA.com:(我宁愿使用 nginx,但 Plesk 中用于快速调整 nginx 的设置在某种程度上受到限制)

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / http://localhost:1337/
ProxyPassReverse / http://localhost:1337/
<Location />
    Order allow,deny
    Allow from all
</Location>

耶,我可以通过端口 80 访问在端口 1337 上运行的节点应用程序domainA.com

但是:端口 1337 仍可在我的服务器上的所有域上直接访问。不仅domainA.com:1337显示我的节点应用程序,sub.domainA.com:1337还将domainB.com:1337显示我的应用程序。

这个端口仍然可以在任何地方访问,这完全合乎逻辑,但我怎样才能在其他域上“阻止”这个端口呢?

最好的情况是domainA.com:1337重定向到domainA.comsub.domainA.com:1337/domainB.com:1337不会显示任何内容。

我的设置能实现这个功能吗?

如果可以使用 nginx 代替 apache – 为什么不呢!我只使用了 apache 的 mod_proxy,因为在 Plesk 中设置起来更容易。

答案1

Plesk 现在具有无缝 Node.JS 支持 - 并且与其托管、订阅等兼容。 http://ext.plesk.com/packages/28f799af-1ff4-4bb8-9c87-a04f0f23d32e-jxcore-support

相关内容