it-swarm-ko.tech

PHP : mod_php에 비해 FastCGI의 장점은 무엇입니까?

최근에 PHP와 함께 FastCGI를 사용하도록 제안되었습니다. 이제 FastCGI 페이지로 이동하여 읽었지만 이점이 무엇인지 실제로 이해하지 못합니다.

30
cletus

각 Apache 작업자는 mod_php를 사용하여 전체 PHP 인터프리터가로드됩니다. Apache는 들어오는 요청마다 하나의 작업자 프로세스가 필요하기 때문에 각각 고유 한 수백 명의 Apache 작업자를 사용하게됩니다. PHP 인터프리터가로드되어 엄청난 양의 메모리를 소비합니다.

(이것은 사실이 아닙니다. Apache의 worker_mpm를 사용하면 단일 스레드 Apache 작업자로 많은 요청을 처리 할 수 ​​있습니다. 그러나 2009 년에도 PHP 확장명과 관련된 스레딩 문제로 인해 PHP)을 배포하는 것이 권장되는 방법은 아닙니다.

Fast_cgi 모드에서 PHP 사용 (lighttpd 패키지의 spawn-fcgi 와 같은 것을 사용))를 사용하면 다음과 같은 이점이 있습니다.

  • 들어오는 연결 수와 별도로 PHP 워커 수를 조정하십시오.
  • PHP 작업자를 다른 서버에 두거나 웹 계층을 변경하지 않고 여러 서버로 확장 가능
  • nginx 또는 lighttpd 와 같은 다른 웹 서버를 유연하게 선택할 수 있습니다.
  • 웹 서버의 다른 보안 도메인에서 PHP 응용 프로그램을 실행할 수 있습니다.
37
Dave Cheney

FastCGI는 mod_php와 달리 php 비트가 Apache 비트와 동일한 프로세스에서 실행되지 않음을 의미합니다. 이 분리는 서버를 다시 시작하거나 런 어웨이 응용 프로그램을 처리 할 때 확실한 이점을 가질 수 있습니다. mod_php의 경우, 이는 "런 어웨이"인 Apache 프로세스이지만, fastcgi에서는 아파치가 말하는 프로세스 일뿐입니다. 전체 서버를 중단 할 필요는 없습니다.

5
pjz

아직 언급되지 않은 또 다른 장점은 mod_fcgid (Apache에서 FastCGI를 사용하기위한 새로운 구현) 및 suexec을 사용하면 다른 호스트가 다른 Linux 사용자를 실행하기 위해 다른 Linux 사용자를 사용하는 설정을 실현할 수 있습니다. 이는 공유 호스팅 시나리오에서 실질적인 보안 이점이 될 수 있습니다.

Mod_php를 사용하면 모든 vhost는 동일한 사용자 (Apache의 사용자)를 공유합니다. 보안 문제가 발생할 수 있습니다.

4
Martin C.