FastCGI
Эту статью следует викифицировать. Пожалуйста, оформите её согласно правилам оформления статей.
|
Интерфейс FastCGI — клиент-серверный протокол взаимодействия вебсервера и приложения, дальнейшее развитие технологии CGI. По сравнению с CGI является более производительным и безопасным.
FastCGI ликвидирует множество ограничений CGI-программ. Проблема CGI-программ в том, что они должны быть перезапущены веб-сервером при каждом запросе, что приводит к понижению производительности.
FastCGI убирает это ограничение, сохраняя процесс запущенным и передавая запросы этому постоянно запущенному процессу. Это позволяет не тратить время на запуск новых процессов.
В то время как CGI-программы взаимодействуют с сервером через STDIN и STDOUT запущенного CGI-процесса, FastCGI-процессы используют Unix Domain Sockets или TCP/IP для связи с сервером. Это даёт следующее преимущество над обычными CGI-программами: FastCGI-программы могут быть запущены не только на этом же сервере, но и где угодно в сети. Также возможна обработка запросов несколькими FastCGI-процессами, работающими параллельно.
lighttpd включает в себя внутренний распределитель нагрузки FastCGI, который может использоваться для распределения сразу на несколько FastCGI-серверов. В отличие от иных решений, в кластере должен находиться только FastCGI-процесс, а не целый веб-сервер. Это позволяет использовать FastCGI-процессу больше ресурсов, что характерно, например, для load-balancer+apache+mod_php.
При сравнении php-FastCGI с apache+mod_php, необходимо обращать внимание на то, что FastCGI обеспечивает дополнительную безопасность, как, например, запуск FastCGI процесса под пользователем, отличным от пользователя web-сервера, а также может находиться в chroot'е, отличном от chroot'а веб-сервера.
При сравнении perl-FastCGI с apache+mod_perl(1,2), кроме вышеуказанного, заметно, что для разделяемого использования памяти между процессами, реализуемого в mod_perl через startup.pl, необходим FastCGI - менеджер процессов, реализованный на Perl. Это реализуется модулем FCGI::ProcManager и надстройкой над ним, FCGI::Spawn.
Веб-серверы поддерживающие FastCGI
- Abyss Web Server
- Apache HTTP-сервер (частично)
- Используются сторонние модули mod_fastcgi или mod_fcgid
- Мультиплексирование запросов через одно соединение невозможно в данной архитектуре веб сервера Apache[1]
- aXesW3
- Cherokee HTTP Server [2]
- Hiawatha webserver [3]
- Поддержка изолированной FastCGI сервера
- Lighttpd
- LiteSpeed Web Server
- Microsoft IIS [4]
- MyServer
- nginx
- Поддержка группы серверов
- Open Market Web Server
- Roxen webserver
- Sun Java System Web Server (и предшественники)
- WebSTAR
- Zeus
Привязки FastCGI API в языках программирования
FastCGI может быть использован в любом языке, поддерживающем сокеты. Существующие API:
- C / C++
- Chicken Scheme
- Common Lisp: CLISP and CMUCL
- D (язык программирования)
- Erlang
- Guile Scheme
- Goanna Eiffel
- Haskell
- HP BASIC for OpenVMS
- Java
- Lua
- Ocaml
- Mono XSP
- Perl
- PHP
- Roadsend PHP
- Python
- Ruby
- SmallEiffel
- Smalltalk: FasTalk and Dolphin Smalltalk
- TCL
Примечания
См. также
Источники
- Сайт посвящённый FastCGI
- Спецификация протокола FastCGI
- Описание FastCGI модуля для сервера lighttpd
- Настройка FastCGI модуля для сервера nginx
de:FastCGI en:FastCGI es:FastCGI fr:FastCGI ja:FastCGI pl:FastCGI uk:FastCGI
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....