최근에 PHP와 함께 FastCGI를 사용하도록 제안되었습니다. 이제 FastCGI 페이지로 이동하여 읽었지만 이점이 무엇인지 실제로 이해하지 못합니다.
각 Apache 작업자는 mod_php를 사용하여 전체 PHP 인터프리터가로드됩니다. Apache는 들어오는 요청마다 하나의 작업자 프로세스가 필요하기 때문에 각각 고유 한 수백 명의 Apache 작업자를 사용하게됩니다. PHP 인터프리터가로드되어 엄청난 양의 메모리를 소비합니다.
(이것은 사실이 아닙니다. Apache의 worker_mpm
를 사용하면 단일 스레드 Apache 작업자로 많은 요청을 처리 할 수 있습니다. 그러나 2009 년에도 PHP 확장명과 관련된 스레딩 문제로 인해 PHP)을 배포하는 것이 권장되는 방법은 아닙니다.
Fast_cgi 모드에서 PHP 사용 (lighttpd 패키지의 spawn-fcgi 와 같은 것을 사용))를 사용하면 다음과 같은 이점이 있습니다.
FastCGI는 mod_php와 달리 php 비트가 Apache 비트와 동일한 프로세스에서 실행되지 않음을 의미합니다. 이 분리는 서버를 다시 시작하거나 런 어웨이 응용 프로그램을 처리 할 때 확실한 이점을 가질 수 있습니다. mod_php의 경우, 이는 "런 어웨이"인 Apache 프로세스이지만, fastcgi에서는 아파치가 말하는 프로세스 일뿐입니다. 전체 서버를 중단 할 필요는 없습니다.
아직 언급되지 않은 또 다른 장점은 mod_fcgid
(Apache에서 FastCGI를 사용하기위한 새로운 구현) 및 suexec을 사용하면 다른 호스트가 다른 Linux 사용자를 실행하기 위해 다른 Linux 사용자를 사용하는 설정을 실현할 수 있습니다. 이는 공유 호스팅 시나리오에서 실질적인 보안 이점이 될 수 있습니다.
Mod_php를 사용하면 모든 vhost는 동일한 사용자 (Apache의 사용자)를 공유합니다. 보안 문제가 발생할 수 있습니다.