Nginx and Atmail
This document covers the steps you need to take to have Atmail working with the NginX platform.
Nginx is a free, open-source, high-performance HTTP server and reverse proxy. It uses an event-driven architecture that distingtuishes it from the likes of Apache. It uses low-resources, and is used for high-performance environments. See: http://wiki.nginx.org/Main for more info.
First, download spawn-fcgi from http://redmine.lighttpd.net/projects/spawn-fcgi/news:
% wget "http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz"
Untar, install:
% tar xvfz spawn-fcgi-1.6.3.tar.gz
% cd spawn-fcgi-1.6.3
% ./configure && make && make install
Then, download nginx from http://nginx.org/en/download.html:
% wget "http://nginx.org/download/nginx-0.8.40.tar.gz"
Untar, install:
% tar xvfz nginx-0.8.40.tar.gz
% cd nginx-0.8.40
% ./configure && make && make install
This will install nginx in /usr/local/nginx/. You will then need to move the /usr/local/nginx/conf/nginx.conf file, and replace it with the file from: http://atmail.com/download/nginx.conf.txt
% mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.old
% cd /usr/local/nginx/conf
% wget "http://atmail.com/download/nginx.conf.txt"
% mv nginx.conf.txt nginx.conf
Spawn the FastCGI process afterwards. For this example, we will run it in port 34480:
% /usr/local/bin/spawn-fcgi -f /usr/bin/php-cgi -a 127.0.0.1 -p 34480 -P /var/run/fastcgi-php.pid -C 2
You will then need to edit the /usr/local/nginx/conf/nginx.conf file. It will contain this line:
fastcgi_pass 127.0.0.1:34480; # IP and Port of your spawn-fcgi process
If you change the spawn-fcgi port, you will need to edit it in the nginx.conf file as well. For example, a spawn-fcgi port of 51000 will have this command:
/usr/local/bin/spawn-fcgi -f /usr/bin/php-cgi -a 127.0.0.1 -p 51000 -P /var/run/fastcgi-php.pid -C 2
And this configuration line:
fastcgi_pass 127.0.0.1:51000; # IP and Port of your spawn-fcgi process
The configuration file will also contain the following lines of interest:
root /usr/local/atmail/webmail/;
This defines the document root you wish to have.
user atmail;
This defines the username you want to run nginx as.
worker_processes 2;
This sets the number of processes that nginx spawns. We recommend it to be set to the number of CPU cores you have available.
When you are satisfied, run the nginx process:
% /usr/local/nginx/sbin/nginx

