Niedawno zasugerowano mi, że używam FastCGI z PHP. Teraz poszedłem na stronę FastCGI i przeczytałem ją, ale tak naprawdę nie rozumiem, jakie są zalety.
źródło
Niedawno zasugerowano mi, że używam FastCGI z PHP. Teraz poszedłem na stronę FastCGI i przeczytałem ją, ale tak naprawdę nie rozumiem, jakie są zalety.
Za pomocą mod_php każdy proces roboczy Apache ma załadowany cały interpreter PHP. Ponieważ Apache potrzebuje jednego procesu roboczego na każde przychodzące żądanie, możesz szybko skończyć z setkami pracowników Apache w użyciu, z których każdy ma załadowany własny interpreter PHP, zużywając ogromne ilości pamięci.
(Uwaga: nie jest to do końca prawdą, Apache worker_mpm
pozwala obsługiwać wiele żądań za pomocą jednego wątkowego pracownika Apache. Jednak nawet w 2009 r. Nie jest to zalecany sposób wdrażania PHP z powodu podejrzeń problemów z wątkami z rozszerzeniami PHP).
Korzystanie z PHP w trybie fast_cgi (używanie czegoś takiego jak spawn-fcgi z pakietu lighttpd) ma następujące zalety
FastCGI oznacza, że bity php nie działają w tym samym procesie co bity apache, w przeciwieństwie do mod_php. Ta separacja może mieć pewne określone zalety, jeśli chodzi o ponowne uruchomienie serwera lub radzenie sobie z niekontrolowanymi aplikacjami - w przypadku mod_php oznacza to, że to proces apache jest „niekontrolowany”, ale w fastcgi to tylko proces, z którym rozmawia apache, więc cały serwer nie musi być zdjęty.
Kolejną zaletą, o której jeszcze nie wspomniano, jest fakt, że dzięki mod_fcgid
(która jest nowszą implementacją do używania FastCGI na Apache) i suexec możesz realizować konfiguracje, w których różne vhosty używają różnych użytkowników Linuksa do wykonania, co może być prawdziwą korzyścią bezpieczeństwa we współdzielonym hostingu szenario .
Dzięki mod_php wszystkie vhosty mają tego samego użytkownika, którym jest użytkownik Apache. Może to prowadzić do problemów z bezpieczeństwem.