Nginx відомий високою швидкістю та невеликим споживанням ресурсів, проте він не підтримує класичні CGI-скрипти безпосередньо. Якщо на сервері потрібно запускати файли з розширеннями .cgi або .pl, необхідно підключити додатковий сервіс, який прийматиме запити від Nginx і передаватиме їх відповідному скрипту.

У Fedora 15 це можна реалізувати двома способами. Перший варіант передбачає використання легкого вебсервера Thttpd. Він запускається локально, наприклад на порту 8000, а Nginx перенаправляє до нього всі запити з каталогу /cgi-bin. Сам Thttpd виконує CGI-скрипт і повертає готову відповідь користувачеві.

Перед налаштуванням потрібно встановити засоби для збирання RPM-пакетів, завантажити початковий пакет Thttpd, застосувати необхідне виправлення та зібрати оновлену версію. Після встановлення сервер налаштовують на роботу лише через локальну адресу 127.0.0.1, що не дозволяє звертатися до нього безпосередньо з інтернету.

У конфігурації Nginx для каталогу /cgi-bin додається проксіювання на Thttpd. Також передаються адреса клієнта, ім’я хоста та інші службові заголовки. Після перезапуску Nginx CGI-скрипти можна розміщувати у визначеному каталозі, надавши їм право на виконання.

Недоліком цього підходу є використання спільного каталогу CGI для різних сайтів. Якщо на сервері працює кілька віртуальних хостів, зручніше застосовувати другий спосіб — Fcgiwrap.

Fcgiwrap працює як оболонка між Nginx і CGI-скриптами. У Fedora 15 готового пакета може не бути, тому програму збирають із початкового коду. Для її запуску використовується служба spawn-fcgi, яка створює Unix-сокет і передає через нього запити від Nginx.

Після запуску Fcgiwrap у конфігурації кожного віртуального хоста додається окремий блок /cgi-bin. У ньому вказується шлях до сокета, стандартні параметри FastCGI та повний шлях до виконуваного скрипту. Завдяки цьому кожен сайт може мати власний каталог CGI, що значно зручніше для багатосайтового сервера.

Для перевірки роботи достатньо створити простий Perl-скрипт, який повертає HTML-сторінку, надати йому право на виконання та відкрити його адресу у браузері. Якщо конфігурація виконана правильно, Nginx передасть запит через Thttpd або Fcgiwrap, після чого користувач побачить результат роботи скрипту.

Обидва способи дозволяють додати підтримку CGI до Nginx. Thttpd простіший для одного сайту, тоді як Fcgiwrap краще підходить для кількох віртуальних хостів і дає змогу розділити каталоги скриптів між різними проєктами.