使用Node.JS将Ghost作为子域上的NPM模块运行

有没有办法使用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/并查看我的博客。 尽pipe现在可以工作,但我希望能够使用Node.JS在http://blog.example.com/上查看我的博客。

可悲的是,networking的工作方式阻止了你想要的环境。 为了实现这种function,您需要一个代理服务器来在整个应用程序的前面。 由于它的速度和广泛的使用,我build议NginX这个能力。

为什么这是不可能的?

在这个意义上说,networking是你绑定到一个IP和一个端口的系统。 当你绑定,没有别的可以绑定到同一个IP /端口。 由于一个域(和子域)只是指向一个IP地址,所以你不可能在networking级别分离这些连接。 这就是为什么添加Host HTTP头。

NginX怎么做?

NginxparsingHost头,并可以将连接发送到您的Ghost服务器,因为您希望它被转发到。 这也使您可以将主域( http://example.com )转发到您喜欢的任何网站,因此可以在同一个IP和端口上使用不同的应用程序。

这个答案包含了如何实现这个function的最佳方向。