如何使Webrick服务器在Windows Server 2008的Web上可访问

这是一个nuub的问题(我现在更多地是一个给pipe理员任务的程序员)。 我有一个rails应用程序,在远程windows server 2008机器上工作得很好(它的轨道2.3.5,我运行ruby script/server ,它运行在端口3000 (即我可以访问本地主机:3000)就好了。 。

假设机器域被称为domain.com ..如果我去domain.com:3000没有任何反应。

我如何让这个应用程序访问www? 如果我只是去domain.com我看到一个IIS欢迎页面。

您需要的确切步骤取决于您的networkingdevise和软件/硬件设备,但要检查所有重要的点从一端到另一端,并确保它们允许stream量通过。

它可能在一个或多个这些地方被阻止:

  • Windows防火墙默认阻止传入连接。 看看控制面板 – >pipe理工具 – >高级安全Windows防火墙,入站规则。 制定新规则“允许端口,TCP,3000,所有configuration文件”。 保存并重试。

  • 它如何连接到互联网? 您可能有一个路由器和/或防火墙,这两个默认情况下都会阻止传入的连接。 您需要在任何防火墙设备上打开端口3000。 如果您的服务器有一个专用地址(192.xxx,172.xxx,10.xxx),则位于networking地址转换(NAT)之后,您需要设置port forwarding以便将互联网端口3000上的传入连接发送给局域网端的服务器。 (以下是关于如何为各种路由器实现的示例: http : //portforward.com/english/routers/port_forwarding/ )

  • 您可以到localhost:3000 ,但是如果您的应用程序绑定到地址127.0.0.1:3000则可能只是侦听来自运行的服务器的连接。 如果是这样,请将其更改为使用服务器的地址,例如192.168.0.1:3000

  • 服务器是否运行包含防火墙层的防病毒软件(McAfee,Norton)? 这可能会阻止端口3000上的传入连接。如果是这样,找出如何通过。

这些是最可能的事情; 端口3000连接到您的互联网连接,扔掉它们。 然后,一旦你把它们送到你的服务器,Windows防火墙将它们扔掉。

  • 也可能是因为客户端计算机(McAfee,Norton等)上的防火墙非常严格,或者因为客户端Internet连接上有严格的办公室防火墙,您的浏览器不允许在端口3000上连接。