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


30

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

답변:


37

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

(이것이 사실이 아니기 때문에 Apache 's worker_mpm는 단일 스레드 Apache 작업자로 많은 요청을 처리 할 수 ​​있습니다. 그러나 2009 년에도 PHP 확장과 관련하여 스레드 문제가 의심되어 PHP를 배포하는 것은 권장되지 않습니다.)

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

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

5

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


4

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

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


이 특정 Apache httpd 설정에 사용 된 MPM에 따라 다릅니다. 예를 들어 MPM-itk ( mpm-itk.sesse.net )를 사용하면 mod_php를 사용하고 다른 사용자의 컨텍스트에서 스크립트 (또는 httpd 프로세스)를 실행할 수 있습니다.
joschi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.