2013-12-10 46 views
0

设置一个nodejs服务器为REST接口(带有json对象)提供给我的应用程序。 这工作正常。Nodejs服务器配置实验

目前我运行Jekyll服务来提供内容页面。这会导致一些跨站点脚本问题,因为它们在不同的端口上运行。我可以解决这个问题,但它似乎不是最佳的解决方案。

运行nodejs服务器以在同一端口上提供REST接口和Web内容接口是否正常?我一直在研究nodejs/express/Swig作为Jekyll服务的替代品,但是我似乎在nodejs上运行express/Swig会改变我的响应对象的行为,这使得使用REST不太理想。

回答

2

是正常运行的NodeJS服务器提供REST接口和相同的端口上的网络内容接口

是的,这是很常见的,因为它是更简单的处理,所以许多小应用程序/ apis选择这种方法。有时API使用URL路径前缀(如'/ api')作为基本区别。有时候人们使用内容协商,其中'/ user/42'将根据请求'Accept'头部发送HTML或JSON。

然而,它也是通常使用的web服务器的80端口的路由基于路径上的不同的后端应用程序,因此,例如什么/api将反向代理,以明确的应用上127.0.0.1:3000但一切看对于内容页面可能会转到127.0.0.1:3001上的jekyll应用。

  • 我将如何滚动。因为我是在80端口反向代理very much in favor of using a real web server on port 80
    • nginx的表达对API和杰奇内容
  • 也有可能
    • 快递侦听80,直接处理API,使用节点,基于HTTP代理来反转代理内容从jekyll应用程序
  • 还有一堆其他组合可以使您轻松工作。主要是关于你认为容易理解,可靠,安全等。
+0

因此,你建议在80上的标准Web服务器。然后内容引擎和REST引擎在不同的端口,但Web服务器路由请求适当的端口。 –

+0

你甚至可以直接使用Node,使用类似https://github.com/nodejitsu/node-http-proxy – brandonscript