- Вкомплировать интерпретатор в сервер (mod_dtcl, mod_perl, pyapache для apache,
серверы с поддержкой servlets, AOL server с его поддержкой tcl).
- Переделать на FastCGI или аналогичную технологию.
- Переписать ее на компилируемый язык, если написано на скриптовом. Тем самым
вы избавитесь от оверхедов интерпретатора.
- Взять более мощный сервер (IBM RS/6k F50, к примеру :-)
Это perl, вкомпилированный в apache, что придает многие преимущества:
- Скрипты и модули компилируются один раз, что значитльно увеличивает
скорость ответа на запрос HTTP (до 2000%);
- Можно написать свои обработчики различных стадий запроса;
- Кеширование сединений с сервером БД -- еще прибавка к скорости;
- Директива SSI #perl позволяет в server-parsed html вызывать функции perl;
- секции <perl></perl> в конфиге apache, для его конфигурирования;
Правда, ничего не дается даром и самый важный недостаток mod_perl --
огромный расход памяти: если обычный apache занимает при работе обычно
меньше мегабайта, то apache с mod_perl размером в 10-15 Mb -- вполне нормальное
явление. Но, при правильной настройке, значительная часть этой памяти будет
shared между копиями процессов.
Основной сайт про mod_perl -
http://perl.apache.org, в частности
великолепный mod_perl Guide на
http://perl.apache.org/guide/.
Программа CGI исполняется один раз, за тем умирает. Под mod_perl же она загружается и
исполняется до смерти сервера (в случае использования Apache::Registry, см.
далее), поэтому она требует более аккуратного описания - закрывать файлы, не
использовать много памяти, и тд.
Более подробно о переписывании программ CGI под mod_perl -
http://perl.apache.org/guide/porting.htm.
Содержание