Existem benefícios no uso de CGI em um servidor Apache2 de grande escala ou devo apenas usar o FASTCGI?

3

Eu tenho um produto da web feito em PHP que, teoricamente, deve suportar muitos usuários. O problema é que acabei de deixar o apache como está e descobri que ele está rodando como CGI. Isso é muito errado e eu deveria fazê-lo em fastcgi ou simplesmente deixá-lo como está?

    
por gianebao 03.08.2011 / 07:58

3 respostas

2

As únicas razões válidas para usar o CGI em preferência ao fastCGI ou a um módulo do apache são

  1. para economizar recursos onde a caixa está exibindo um muito pequeno número de páginas dinâmicas
  2. onde você precisa invocar a funcionalidade usando um uid diferente (por exemplo, via suexec).
  3. onde o seu mecanismo de processamento (ou seja, o interpertador PHP) é muito, muito flakey ou no processo de sofrer várias alterações - e, em seguida, apenas para testes do sistema

Se nada disso se aplicar, seu website será muito mais lento e exigirá mais recursos para operar, já que o sistema operacional precisa iniciar um novo processo para cada solicitação.

    
por 03.08.2011 / 14:34
2

apenas entenda a diferença entre as duas abordagens:

com cgi o servidor da Web inicia um novo processo (o script que você deseja criar a resposta para o navegador) para cada solicitação. (se ninguém visitar o seu servidor, nenhum processo está ocioso).

com fastcgi , você tem um monte de instâncias atualizadas dos "scripts" desejados. (Essa abordagem economiza o tempo de lançamento de novos processos, mas você precisa manter sob controle o conjunto de instâncias que estão sendo executadas, google for php-fpm).

o que escolher agora: se o número de visitantes reais corresponder às suas expectativas "teóricas" E você tiver um desempenho ruim: pense em mudar de 'cgi' para 'fastcgi'. você deve ler em 'fastcgi' de qualquer maneira para aprofundar seu conjunto de habilidades. mas nenhuma ação é necessária, desde que o número de usuários seja muito pequeno e a velocidade seja "ok".

    
por 03.08.2011 / 08:23
0

O que é "grande escala"? Para alguns, são 10 milhões de pageviews por mês, para cerca de 10 milhões de pageviews por hora. O que é isto para você?

Que "1,5 mil visitas por dia" mencionadas em um comentário certamente não é um grande número e o CGI tradicional funcionará com esse tipo de tráfego sem problemas. Dependendo dos aplicativos da web executados em seus sistemas, o CGI tradicional provavelmente funcionará com um tráfego cem vezes mais ocupado que o tráfego atual.

Mas vamos esquecer os números.

O FastCGI é mais rápido que o CGI tradicional, porque já existem aqueles que já executam processos de trabalho aguardando novas solicitações. No CGI tradicional, toda solicitação gera um novo processo. Em teoria, o FastCGI pode ajudá-lo nos tempos de resposta do site já, dependendo completamente se o gargalo atual é seu aplicativo da web (por exemplo, gargalo real sendo chamadas de banco de dados).

    
por 03.08.2011 / 15:40