我无法使用IIS和IISNode从Windows Server 2012外部访问我的网站

时间:2016-09-09 19:49:28

标签: node.js iis iis-8 windows-server-2012-r2 iisnode

我买了一台新的专用服务器。我有一个MEAN Stack应用程序(Node.js,Angular,MongoDB,Express),并希望利用IIS来发布我的webapp。

我跟着this guide安装了iisnode并使一个litle node.js服务器工作。

我做到了,并在服务器内的浏览器中成功尝试了http://iisnode.local

另一方面,如果我尝试http://(theIPoftheserver)/iisnode.local,我会收到以下错误:

enter image description here

我需要为服务器做些什么才能从外面访问,但我不知道是什么..

如果我去http://(theIPoftheserver)/我可以看到IIS网站,即使我去http://(theIPoftheserver)/node我也可以看到iisnode网站......

我很新手,我需要一些帮助...

我的web.config文件:

<configuration>
    <system.webServer>

        <!-- indicates that the server.js file is a node.js application
        to be handled by the iisnode module -->

        <handlers>
            <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
        </handlers>


        <rewrite>
            <rules>
                <rule name="sendToNode">
                    <match url="/*" />
                    <action type="Rewrite" url="server.js" />
                </rule>
            </rules>
        </rewrite>

        <iisnode enableXFF="true" />

    </system.webServer>
</configuration>
编辑:我还要提到我在Windows中有一条新规则&#39;托管文件如下:

127.0.0.1   iisnode.local
EDIT2:Windows防火墙可以阻止某些东西吗?我需要断开连接吗?

重要编辑14.09.2016:如果我编辑主机文件并添加:

<server-ip-address> iisnode.local

然后我访问http://iisnode.local它有效! 我不太了解为什么虽然..我不希望我网站的所有用户修改他们的主机文件,我该怎么办?

我不知道这可能是问题的根源吗?

编辑:我的网站绑定看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:3)

使用

访问服务器中的站点时
  

http://iisnode.local(按主机名)

相同
  

http://127.0.0.1/(按IP)

因此,当您使用IP地址时,请不要将iisnode.local放在其后。

iisnode.local是主机名,在URL中,您使用的是主机名或IP,而不是同一时间。

  

http://(theIPoftheserver)/iisnode.local

等于

  

http://(IP)/(hostname)&lt; ---那是错的!

目前,我假设您没有为您的服务器设置公共DNS,访问该网站的正确方法将是

  

http://(External-IP)/&lt; - 之后没有iisnode.local。