This approach of the download
process will lead us to discover the various resources at the disposal
of server administrators websites, communities, and wikis all relating
to Nginx. We will also quickly discuss the different version branches
available to you, and eventually select the most appropriate one for
your setup.
Websites and resources
Although Nginx is a
relatively new and growing project, there are already a good number of
resources available on the World Wide Web (WWW) and an active community
of administrators and developers.
The official website, which is at www.nginx.net,
is rather simple and does not provide much information or
documentation, other than links for downloading the latest versions. On
the contrary, you will find a lot of interesting documentation and
examples on the official wiki wiki.nginx.org.
The wiki provides a large
variety of documentation and configuration examples it may prove very
useful to you in many situations. If you have specific questions though,
you might as well use the forums forum.nginx.org.
An active community of users will answer your questions in no time.
Additionally, the Nginx mailing list, which is relayed on the Nginx
forum, will also prove to be an excellent resource for any question you
may have. And if you need direct assistance, there is always a bunch of
regulars helping each other out on the IRC channel #Nginx on Freenode.
Another interesting source of information the blogosphere.
A simple query on your favorite search engine should return a good
amount of blog articles documenting Nginx, its configuration, and
modules.
It's now time to head over to
the official website and get started with downloading the source code
for compiling and installing Nginx. Before you do so, let us have a
quick summary of the available versions and the features that come with
them.
Version branches
Igor Sysoev, a talented
Russian developer and server administrator, initiated this open source
project early in 2002. Between the first release in 2004 and the current
version, which now serves over 6.55 percent of websites on the
Internet, steady progress was made. The features are plenty and render
the application both powerful and flexible at the same time.
There are currently three version branches on the project:
Stable
version: This version is usually recommended, as it is approved by both
developers and users, but is usually a little behind the development
version above. The current latest stable version is 0.7.66, released on
June 07, 2010.
Development
version: This is the the latest version available for download.
Although it is generally solid enough to be installed on production
servers, you may run into the occasional bug. As such, the stable
version is recommended, even though you do not get to use the latest
features. The current latest development version is 0.8.40, released on
June 07, 2010.
Legacy
version: If for some reason you are interested in looking at the older
versions, you will find two of them. There's a legacy version and a
legacy stable version, respectively coming as 0.5.38 and 0.6.39
releases.
A recurrent
question regarding development versions is "are they stable enough to be
used on production servers?" Cliff Wells, founder and maintainer of the nginx.org
wiki website and community, believes so "I generally use and recommend
the latest development version. It's only bit me once!". Early adopters
rarely report critical problems.
Features
As of the stable
version 0.7.66, Nginx offers an impressive variety of features, which,
contrary to what you may think, are not all related to serving HTTP
content. Here is a list of the main features of the web branch, quoted
from the official website nginx.net:
Handling of static files, index files, and autoindexing; open file descriptor cache.
Accelerated reverse proxying with caching; simple load balancing and fault tolerance.
Accelerated support with caching of remote FastCGI servers; simple load balancing and fault tolerance.
Modular
architecture. Filters include Gzipping, byte ranges, chunked responses,
XSLT, SSI, and image resizing filter. Multiple SSI inclusions within a
single page can be processed in parallel if they are handled by FastCGI
or proxied servers.
Nginx can also be used as a mail proxy server:
User redirection to IMAP/POP3 backend using an external HTTP authentication server
User authentication using an external HTTP authentication server and connection redirection to an internal SMTP backend
Authentication methods:
POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/ CRAM-MD5
IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5
SSL support
Nginx is
compatible with many computer architectures and operating systems like
Windows, Linux, Mac OS, FreeBSD, and Solaris. The application runs fine
on 32 and 64 bit architectures.
Downloading and extracting
Once you have made your choice as to which version you will be using, head over to nginx.net
and find the URL of the file you wish to download. Position yourself in
your home directory, which will contain the source code to be compiled,
and download the file using wget.
[alex@example.com ~]$ mkdir src && cd src
[alex@example.com src]$ wget http://nginx.org/download/nginx-0.7.66.tar.gz
We will be using version
0.7.66, the latest stable version as of June 07, 2010. Once downloaded,
extract the archive contents in the current folder:
[alex@example.com src]$ tar zxf nginx-0.7.66.tar.gz
You
have successfully downloaded and extracted Nginx. Now, the next step
will be to configure the compilation process in order to obtain a binary
that perfectly fits your operating system.