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

Прив'язки FastCGI API в мовах програмування

FastCGI може бути використаний в будь-якій мові, що підтримує сокети. Існуючі API:

Примітки

  1. # AEN147 FastCGI — The Forgotten Treasure / Section 2.3. Архів оригіналу за 8 лютого 2010. Процитовано 11 листопада 2009.
  2. FastCGI для Cherokee. Архів оригіналу за 25 червня 2008. Процитовано 11 листопада 2009.
  3. # fastcgi FastCGI HOWTO for Hiawatha. Архів оригіналу за 23 березня 2008. Процитовано 11 листопада 2009.
  4. FastCGI для IIS (technical preview 2)

Див. також

Джерела