Moving images onto a separate server

Has your website technical team ever suggested separating your images onto another web server? What does this mean and what are the website performance benefits? Are there issues that may be overlooked on the business or commercial side that you need to speak up about?

laptop with stethescope

Why separate images?

Web applications whether made of 2 boxes or 200, can be viewed as a collection of three core functions:

1) Web server – builds pages from data supplied from the other functions below and delivers them to visitors

2) Application server – performs the clever ‘business logic’ that sits behind your website – e.g. an ‘insurance quotation’ engine

3) The database, whether Oracle, Microsoft or mySQL etc, is where the actual data is kept and updated e.g. new orders becoming line items in an ‘Orders’ table

The three functions may be located on one box or spread across many, and may be referred to collectively as the ‘web farm’.

Looking more closely at the web server function – it delivers pages to users based on the requests they pass to it. Each page will consist of the core HTML – which the server has probably built dynamically – and page sub-objects such as .CSS style sheet files or .JS javascript files that the visitor is not directly aware of, and of course the more obvious media objects such as pictures, sound or video clips.

The HTML pages are highly dynamic, and may contain different content in ‘news’ sections every day or hour, or show lists of items that are made live from a real time collection. In contrast the media objects are almost certainly unchanging. New pictures may appear on the site each day, but they will likely be different pictures with different names, and not changes to the original pictures. Your product pictures probably don’t get changed, you just add new images.

Pictures and media are by nature pre-built; an image whether GIF, JPG or PNG, is supplied to the web server already finished, all the server does is simply deliver it to anyone who requests it.

Thus the web server is performing two quite different roles – one complex, the other trivial. The complex role covers the building of pages from various components in real time and delivering them; the trivial task is sending out a static object unchanged every time it is requested.

All the tuning and complex functionality that makes a good dynamic web server, with cookie handling, sessions and so on is wasted when it is delivering images. Hence, the thinking behind separating image files from the dynamic HTML page building.

You can serve unchanging objects such as images from a slimmed-down, tuned for speed, low flexibility web server and get better performance on less hardware.

In addition, if you place your image server physically somewhere different to your main servers, you can keep the image traffic, which is often a good proportion of a page’s volume, off the connection that your HTML pages are delivered over. So if you are hosting on your own premises, and paying for the bandwidth size, then rather than increasing bandwidth, a cheaper solution may be to use a low-cost hosting provider with decent Internet connectivity to house the server for your images.

What costs are involved?

Whether you move the image server to a different environment or locate it as a separate box alongside the others in your own web infrastructure, there is a cost in time and effort to make the necessary changes to your web application or content management system, so that images are called from a different address – instead of them being at: company.com/images/xx they may be at images.company.com/xx or images.company.hostingcompany.com/xx

But watch out! There is a subtle problem here that may affect you badly later on … If you are one of the 10% of surfers who use the Firefox browser, you may have had a quick look at the ‘options’ menu to consider features that are ‘tweakable’. One of the choices you’ll have seen is: ‘Load images for the originating site only’.

This handy choice (for web users) is often used in a way that is distinctly unhelpful for companies using online advertising; in fact some users consider it as an ad-blocking feature.

With this feature selected, Firefox only collects images from the same domain as the web page itself – this means that any adverts delivered from an online advert supplier, will no longer be seen!

We’ve come across high profile sites live now that in fact lose 100% of their images and graphic objects when browsed with Firefox like this – they lose more than just their adverts!

However, most sites that use separate image servers (like the www.bbc.co.uk) work fine with Firefox in this mode. So if you’re going to use separate image servers you need to learn from the BBC et al, and configure your servers right.

It’s simple really – just make sure that the image servers are at your domain! Which is not the same as them being at the physical location at all.
So images.company.com is fine whereas images.company.hostingsupplier.com and images.3rdparty.com are not.

An Ad-blocking  choice has become available now in more browsers, it started with Firefox but even Internet Explorer offers it now. As web users become more proficient, a growing number may well attempt to reduce online clutter/adverts with such a feature, in the same way that many homes with PVR video recorders avoid ever having to watch adverts.

Top