Otimizar o Apache - devo usar o APC / nginx?

1

Li muitas mensagens sobre a otimização do Apache. Durante a leitura, dois nomes repetidos várias vezes, nginx e php-apc .

Eu tentei entender quais deles poderiam ser úteis para mim, mas não consegui encontrar uma resposta definitiva. Eu preciso do meu servidor para suportar cerca de 10k conexões. O servidor tem 5GB de RAM e 4 CPUs.

  1. Minha pergunta é qual dos dois, se houver, devo usar?
  2. Preciso alterar meu código para usar melhor o APC e o nginx ?
  3. O uso do nginx removerá todas as habilidades do servidor da web?
  4. Estou sentindo falta de alguma coisa? há algo básico que eu sinto falta?

Informações do Apache:

[root@web conf]# httpd -V
Server version: Apache/2.2.3
Server built:   Sep  3 2009 17:38:51
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Obrigado!

EDITAR

O site será usado para cozinhar vídeos usando flash-rtmp para vaporizar o vídeo e php (cake) e js para todo o resto.

    
por Kuf 05.08.2012 / 12:45

2 respostas

3

o apc atua como módulo PHP, embora o nginx seja o servidor web e trabalhe com o php via interface cgi. Em breve, a configuração do servidor da Web não é uma tarefa fácil e a escolha da plataforma depende de muitas coisas. 10k conexões - o que significa downloads paralelos de 10k? Se o vídeo é entregue como arquivos para o mesmo servidor - não deve haver problemas com o apache. melhor pensar sobre o disco IO e a rede, se você estiver processando vídeo - tenho certeza de que a CPU não pode lidar com isso. Se você estiver executando este site php para suportar streaming de vídeo, manipulado pelo outro servidor - provavelmente não haverá pedidos massivos relacionados ao php, então você pode fazer isso com qualquer coisa, mesmo sem otimização.

Minha pergunta é qual dos dois, se algum, devo usar?

  • Você pode usar o APC para qualquer situação, mas para o nginx - depende. A configuração padrão do Nginx é mais eficiente que o apache httpd, mas após a configuração adequada, você pode obter quase os mesmos resultados com o httpd.

Preciso alterar meu código para melhor usar o APC e o nginx?

  • Para a APC - não importa, ao usar o nginx você perderá alguns recursos adicionais disponíveis no servidor web Apache httpd mais comum. Talvez você precise consertar algo

O uso do nginx removerá todas as habilidades do servidor da web?

  • Sim, muitos, a outra pergunta é se você usá-lo

Estou faltando alguma coisa? há algo básico que eu sinto falta?

  • Carga de trabalho atual, onde há afunilamento - uso da CPU, rede, conexões etc. O APC reduzirá o uso da CPU e aumentará o uso da RAM. http pode ser usado com diferentes modelos. Como eu vejo, você tem o RHEL5 / Centos5 apache, 32 bits. Pelo menos, use o kernel relevante (kernel-PAE) para usar todos os 5GB de RAM. Não recomendarei o modelo atual do apache no seu caso (modifique o modelo em / etc / sysconfig / httpd). Você pode usar o php como módulo ou via cgi (mod_fcgid).

Isso está longe dos detalhes da configuração - há muitas coisas para configurar, incluindo o respawn do processo, etc.

    
por 06.08.2012 / 09:00
1

APC é um caso de cache bytecode para PHP, enquanto nginx é um servidor web totalmente separado. Pode ajudar a esclarecer que tipo de sites você está planejando executar.

    
por 05.08.2012 / 12:51