Топ питань
Часова шкала
Чат
Перспективи

FastCGI

З Вікіпедії, вільної енциклопедії

Remove ads

Інтерфейс 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.

Remove ads

Вебсервери з підтримкою 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
Remove ads

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

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

Примітки

Див. також

Джерела

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads