如何在node.js上托管servicestack?

use*_*465 2 node.js servicestack

我们有一个访问servicestack REST服务的Icneium Hybrid Mobile应用程序.可以在Node.js而不是IIS上托管servicestack吗?任何例子都非常感谢.

Sco*_*ott 5

您将无法直接在node.js中托管ServiceStack,但是有许多节点代理模块可以透明地代理对ServiceStack Self Hosted应用程序的请求,因此不再需要IIS.

您现在有两个选择:

  1. 如果您的意图只是放弃IIS而您并不特别需要node.js,那么自托管应用程序非常棒,因为没有其他依赖层.请求可以直接进入ServiceStack.

  2. 但是,如果您希望与node.js进行一些集成,那么正如我所说的透明代理可以将请求转发到ServiceStack服务,但您仍然需要在节点代理后面运行自托管ServiceStack服务.

设置自托管ServiceStack服务

为了让这个工作.您需要配置ServiceStack才能使用自托管.这样做的方法是AppHostHttpListenerBase在控制台应用程序中创建AppHost,如链接(上图)所示.

拥有自托管应用程序后,您将配置ServiceStack将侦听的主机名和端口.如果您导航到该URL,您应该会看到ServiceStack服务.

如果您选择不使用节点(选项1),则可以直接访问ServiceStack应用程序.如果您确实希望与节点一起使用,因为您的应用程序的某些其他部分已经使用了节点(选项2),请按照后续步骤设置代理.

Node.JS代理

可用节点有许多代理模块.我选择node-http-proxy通过nodejitsu与流行.

安装看起来很简单 端口80 标准http端口上的请求将被转发到ServiceStack应用程序上localhost:9000.假设它正在运行.

var http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://localhost:9000'}).listen(80);
Run Code Online (Sandbox Code Playgroud)

如果你需要更多的控制权.查看文档中的所有选项.