我有一台服务器,其中使用 Parallels Plesk 作为服务器控制面板,安装了 apache2(带有 mod_proxy 和 mod_http_proxy)、nginx 和 Node.js。在这台服务器上,我有多个域和子域,但只有一个 IP。
如果我在例如端口上启动一个节点应用程序,它将1337
可以通过此端口在此服务器/IP 上的所有域和子域上进行全局访问。(domainA.com:1337
,,sub.domainA.com:1337
)domainB: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.com
和sub.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