1

有没有办法使用 Node.JS 在子域上运行 Ghost?我可以在 Node.JS 上正常运行它,例如:

App.Modules.Ghost = require('ghost'); /**< Ghost module. */
App.Apps.Ghost = App.Modules.Ghost({ config: '/Assets/Ghost/Config.js'.LocalFilePath }); /**< Create Ghost app. */

然后,我就可以访问http://example.com/ghost/并查看我的博客。虽然这目前可行,但我希望能够使用 Node.JS在http://blog.example.com/上查看我的博客。

4

1 回答 1

2

可悲的是,网络的工作方式在您想要的环境中阻止了这种情况。为了实现这种功能,您需要一个代理服务器来处理整个应用程序。由于它的速度和广泛使用,我建议使用NginX来实现此功能。

为什么这是不可能的?

从这个意义上说,网络是您绑定到 IP 和端口的系统。当你绑定时,没有其他东西可以绑定到同一个 IP/端口。由于域(和子域)只是指向一个 IP 地址,因此您无法在网络级别分离这些连接。这就是Host添加 HTTP 标头的原因。

NginX 是如何做到的?

NginX 解析Host标头并可以将连接发送到您希望转发到的 Ghost 服务器。这也允许您将主域 ( http://example.com ) 转发到您喜欢的任何网站,因此在相同的 IP 和端口上使用不同的应用程序等。

该答案包含有关如何实现此功能的最佳指导。

于 2014-06-29T07:37:18.807 回答