Для чего нужна связка Apache & Nginx можно конечно поискать и в других уголках необъятной Сети, но я ж велосипедист и поэтому напишу своими словами. В процессе работы Web сервера Apache он при каждом новом подключении к нему парождает новый процесс, даже если нет ни одного подключению к серверу, то неизменно 4-5 процессов httpd имеется в системе. Тем самым апач плодит n-ное количество процессов, что конечно же сказывается на объеме свободной оперативной памяти и повышенной нагрузке на процессор сервера. Nginx позволяет снизить эту нагрузку в много раз. Данная связка веб серверов примерно такая на фронтенд (frontend) ставится энджинкс который и ловит все входящие подключения от юзер-агентов ваших посетителей. Далее, если запрашивается статический контент такой как html страницы, фотографии, расшаренный файл, то nginx сам обрабатывает данный запрос и максимально быстро отдает его клиенту. Если же требуется обработка какого либо php скрипта, то nginx отловив запрос от клиента отдает его апачу (backend) а тот уже в свою очередь с помощью своего mod_php обрабатывает скрипт и отдает nginx’у уже готовые данные при этом количество запущенных процессов Апача не растет ( у апача в такой связке как я понимаю всего одно подключение с 127.0.0.1 на котором он принимает запросы от nginx). Если говорить еще проще то nginx это легкая прослойка между клиентом и основным мощным веб сервером позволяющая не плодить процессов Апача сберегая тем самым драгоценный RAM. Теперь о настройке. Так как я не юзаю дебианы и прочие убунты опишу процесс установки и настройки в рамках Arch Linux.