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). Архів оригіналу за 26 листопада 2007. Процитовано 11 листопада 2009.

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]