November 29th, 2010
This is a quote from the Apache website: “The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT.” Apache runs about 60% of the world’s websites and is commonly found in two versions, 1.3 and 2.0. Both versions are considered to be stable and secure enough to be create production environments, but there are differences between the two versions.
Although both versions of Apache, 1.3 and 2.0 support Windows, it is generally considered that version 2.0 is more stable on Windows than its predecessor. Additionally there are several major differences between 1.3 and 2.0 that affect web administrators.
Apache 1.3 is a purely process-based web server, whereas version 2.0 can be purely process based, purely threaded or a mixture of the two. A process-based architecture involves a programme creating children (or copies) of itself. These independent processes handle requests independently. Although costly in terms of server power, this model allows separate processes to be terminated if they begin to crash. The process-based architecture model will be familiar to UNIX (and Linux) system administrators.
In Apache 2.0, the request processing architecture has been abstracted into what Apache deems MPMs, or Multi-Processing Modules. This allows a thread-based architecture. Threads are similar to processes but are considered to be more lightweight in terms of processor power and memory needed to run them. Additionally, threads can share code and data with other threads and are easier to scale. Although having advantages of being more lightweight, if data shared among threads becomes corrupted, it can bring down multiple threads.
Other key differences between 1.3 and 2.0 include the modularisation in version 2.0 of protocol handling. This means it is possible to write modules that serve other protocols such as FTP. This in turn means that FTP content for instance can be generated on the fly by, say, PHP, and SMTP authentication can utilise the same database that Apache uses to authenticate web requests.
Apache is modular in design but the incompatibility issues between versions 1.3 and 2.0 mean that modules written for 1.3 need to be specifically ported over for use in 2.0. Generally speaking, modules that have not been ported may be run but only on a 100% process-based Apache 2.0 server. However modules commonly used in 1.3 and distributed with Apache 2.0 installations have been re-written to be ‘thread-friendly’.
Posted in Articles | No Comments
0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment