5

I have a web site at BlueHost ("Pro" plan) that is down often. Firefox says:

The connection has timed out

The server is taking too long to respond.
    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

However, the trace route is fine:

  1    <1 ms    <1 ms    <1 ms  speedport.ip [192.168.2.1]
  2    39 ms    40 ms    40 ms  217.0.112.281
  3    42 ms    41 ms    43 ms  87.186.228.226
  4    49 ms    50 ms    48 ms  217.231.42.245
  5    48 ms    49 ms    49 ms  62.157.251.154
  6   184 ms   184 ms   183 ms  xe-0-3-0.slc10.ip4.gtt.net [89.149.187.137]
  7   188 ms   185 ms   196 ms  ve61.ar05.prov.acedc.net [69.31.64.6]
  8   186 ms   185 ms   185 ms  prv-212-1-0-1.unifiedlayer.com [69.27.175.151]
  9   186 ms   185 ms   185 ms  69-195-64-129.unifiedlayer.com [69.195.64.129]
 10   186 ms   185 ms   185 ms  162-144-240-157.unifiedlayer.com [162.144.240.157]
 11   186 ms   186 ms   186 ms  162-144-240-111.unifiedlayer.com [162.144.240.111]
 12   185 ms   185 ms   186 ms  box950.bluehost.com [69.195.124.150]

I need to be able to monitor if my site is online/offline and I thought trace route is the appropriate tool for that.

Gravity
  • 325
  • 3
  • 10
  • 3
    The physical line to the server is fine, but the software running on it to respond to your requests (apache etc) is not – Jon Mar 03 '16 at 20:37
  • It looks like traceroute cannot be used to monitor the status of a web site. But AUTOMATIC WEBSITE CHECKER http://www.soft.tahionic.com checks if the CONTENT of web site is ok. So, whenever the site is offline or returns an unexpected content (505 error msg for example) it will beep. – Gravity Mar 04 '16 at 10:23

3 Answers3

27

The website runs on a server process. When you shut down the server process, the server does not magically turn off. Also not when you misconfigure your firewall (and block port 80) neither does the server go off nor does the ICMP rule in the firewall get deleted.

user253751
  • 146
  • 1
  • 5
TomTom
  • 50,857
  • 7
  • 52
  • 134
  • 30
    A non-technical explanation - your house is still there and people can still ring your door bell, even if you are not at home to answer :) – Moo Mar 03 '16 at 11:05
  • The BlueHost is not very reliable. Is down pretty often. And it looks like traceroute cannot be used (as I thought) to monitor the status of a web site. But AUTOMATIC WEBSITE CHECKER http://www.soft.tahionic.com checks if the CONTENT of web site is ok. So, whenever the site is offline or returns an unexpected content (505 error msg for example) it will beep. – Gravity Mar 03 '16 at 11:07
  • 1
    @Kenny Yes, because it will actually try to load the page over HTTP and see if it responds with a non-error HTTP response. – nanofarad Mar 03 '16 at 11:18
  • 1
    Can you please explain in your answer that (roughly) the process that serve the website is independent from the process that answer to `traceroute`? As it's written, I find it unclear that the server answer to `traceroute` requests. – A.L Mar 03 '16 at 13:07
  • @A.L No process (in the usual meaning) is responsible for "answering traceroute" (ICMP). – Léo Lam Mar 03 '16 at 13:12
  • @LéoLam I'm sorry I don't know the right expression. The server has to be running and *something* has to answer to the ICMP request, otherwise `traceroute` won't find the server, am I right? – A.L Mar 03 '16 at 13:19
  • 5
    Yes. Funny how little people managing websites know these days. ICMP answers are handled by the TCP stack in the oprating system. A website is handled by something you may have heard of - it is called "web server". Turn off the web server, the machine is still there. – TomTom Mar 03 '16 at 13:20
  • 3
    @TomTom Thanks for the explanation, I found that the text *the server does not magically turn off* in your answer was a bit obscure. Your last comment is explaining it in a simpler way: TCP stack which is runned by the OS responds to `traceroute` and the web server which process is down can't respond to Firefox. – A.L Mar 03 '16 at 13:48
  • 5
    @TomTom whether a process or the kernel is answering ICMP is pretty unimportant here: *something* is answering obviously. Your answer would benefit from a short explanation of what ICMP is, rather than a condescending comment on "how little people managing websites know these days". Obviously that's why they ask! – Calimo Mar 03 '16 at 15:47
  • 2
    This answer is a bit misleading, because shutting down the server process won't cause a connection timeout. If there is no process listening on the port, the kernel will respond to the TCP SYN packets with TCP RST packets. So the client would see an immediate connection refused error message rather than having to wait for a connection timed out message. A misconfigured firewall could however cause connection timeouts. – kasperd Mar 03 '16 at 18:34
10

Traceroute uses ICMP protocol to reach an address, and a HTTP server use HTTP protocol, different ports, and different approaches. I can reach an address via ICMP echo request but, if the port I'm trying to communicate is closed or freezed somehow, I'll get a timeout error. And if you're sure the server is up and the port is up (listening), is better to check the firewall rules then.

5

What Is a Virtual-Host?

Some web-servers, like Apache, can be configured to use what's called virtual-hosting; essentially a local redirection service. In essence, it works like this: the web server(we're going to assume it's Apache2 in this case) will choose what documents to serve depending on what domain and/or IP address the request was from. For example: if you were to navigate to a website at example.com, the server may give you the web-files stored at /var/www/com.example, but if you navigate to another site at example-2.com it may serve you the files at /var/www/com.example-2. All that the server's doing here is changing what is called the document-root, which is essentially the directory of the domain "root" (ex. google.com = root dir., google.com/file/ = not root dir., but a folder stored in the root dir).

Why This Is Relevant

Now what this has to do with your situation: Your domain at http://xxx.bluehost.com may actually be pointing to the exact same server as someone elses website, but the server will respond differently because of your domain name; So when you perform a traceroute to that server it may still respond successfully, because Bluehost may have taken your website down only. And a fair warning: I've always suspected the hosts that offer a cheap web server plan will occasionally shut down the websites of their smaller clients to make room for their bigger clients (bandwidth, processing power, etc.). If you read your agreements and contracts, there's probably a clause that gives them the right to do this.

NOTE: Don't confuse a virtual-server - or virtual-computer - with a virtual-host. They are very different, although they have similar purposes. Also, my apologies if it sounds like I'm assuming you know nothing about web-hosting and what not, it's just easier to assume someone doesn't than to explain it later; and it gives information to people that may read this question later as well!

  • 1
    Yes, I have been with iPage, InMotionHosting, BlueHost... all have tricky agreements. And LOTS of downtime! – Gravity Mar 04 '16 at 10:21
  • Sorry for the late reply, I haven't been on StackExchange in a very long time. I've experimented with quite a few of the free and cheap web hosting services, and all of them suffer from the same problems that you've mentioned. The reasons for this are that they would rather focus their bandwidth and support on paying or high-paying clients, and/or they don't have the resources necessary to provide a reliable hosting solution. Personally, I would recommend either picking up a Raspberry Pi 2 or 3, or build a decent server computer. Setting up a webserver isn't hard, and basically free for Linux. – Alexander C. Solon Dec 01 '16 at 20:18
  • 1
    On a side note: if you're going to build your own server computer and keep it in your house, I'd recommend **not** using dedicated server hardware and instead using normal, modern consumer hardware with an 80-Plus Certified power-supply. Most dedicated servers are proprietary, tend to be very loud, and offer a very little room for configuration on the hardware side. The only advantage they have is that they tend to use less power than traditional hardware (hence why I recommend an 80-Plus PSU), while a desktop-server can be smaller, faster, quieter, and easier to setup. – Alexander C. Solon Dec 01 '16 at 20:24