-->

I can't access my website from outside Windows

2019-06-25 13:48发布

问题:

I bought a new dedicated server. I have a MEAN Stack application (Node.js, Angular, MongoDB, Express) and wanted to take advantage of using IIS to publish my webapp.

I followed this guide to install iisnode and make a litle node.js server working.

I did it and succesfully tried http://iisnode.local in my browser inside the server.

Ont he other hand, if I try http://(theIPoftheserver)/iisnode.local am I am getting the following error:

I need to do something for the server to be accesible from outside but I don't know what..

If i go to http://(theIPoftheserver)/ I can see IIS website and even if I go to http://(theIPoftheserver)/node I can see the iisnode website...

I am quite newbie and I need some help...

My web.config file:

<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>

EDIT: I also have to mention that I have a new rule in windows' hosts file as follows:

127.0.0.1   iisnode.local

EDIT2: can windows firewall be blocking something? Do I need to disconnect it?

IMPORTANT EDIT 14.09.2016: if I edit hosts file and add:

<server-ip-address> iisnode.local

And then I the I visit http://iisnode.local it works! I don't understand it very well why though.. i don't want all the users of my website to modify their hosts file, what can I do?

I don't know is this could be the source of the problem?

EDIT: My Website bindings look like this:

回答1:

When you access your site within the server with

http://iisnode.local (by hostname)

It is same as

http://127.0.0.1/ (by IP)

So when you use IP address, you don't put iisnode.local after it.

iisnode.local is hostname, in an URL, you either use hostname OR IP, not the same time.

http://(theIPoftheserver)/iisnode.local

is equal to

http://(IP)/(hostname) <--- That is wrong!

Currently, I am assuming you don't have public dns setup for your server, the correct way to access the site will be

http://(External-IP)/ <-- No iisnode.local after it.