Desempenho – apache com mpm-worker e fast-cgi

Instalação  e  configuração de Apache 2.2 com os módulos  mpm-worker( multithreading ) e Fast-CGI.

Depois de muito procurar por este tipo de informação em sites gringos, editei este  post,  um passo a passo de como instalar e configurar um servidor web apache com esses dois módulos, conferindo um aumento de performance nos servidores web apache. Espero que seja de alguma utilidade. Estou aberto a opiniões e críticas construtivas.

OS: Ubuntu 8.04 LTS Server com LVM ( Logical Volume Manager ) permitindo maior flexibilidade na manipulação das partições

Instalação do Apache

#apt-get-install apache 2
#apt-get install apache2-mpm-worker libapache2-mod-fcgid

PhP5

apt-get install php5-cgi php5-curl php5-gd php5-mysql php5-xsl


Configuração do MPM-Worker

Conf básica do MPM-Worker, configure de acordo com a sua necessidade
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers          2
Server Limit          16
MaxClients          150
MinSpareThreads      25
MaxSpareThreads      75
ThreadsPerChild      25
MaxRequestsPerChild   0
</IfModule>

Módulo Fast-CGI

Após a execução dos passos acima, edite os arquivos de virtualhost contidos em /etc/apache2/sites-avaiable/default e default-ssl:
e adicione o seguinte conteúdo:

“AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI”

Exemplo:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
ServerName host.dominio.com.br

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error-jwbl.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access-host.log combined
ServerSignature On

</VirtualHost>

Acrescentando essas linhas você estará habilitando o módulo fast-cgi para esse virtualhost

Salve o documento.

Crie um link simbólico em /etc/apache2/sites-enable/ apontando para /etc/apache2/sites-avaible, tanto para o arquivo default quanto para default-ssl ( ou algum outro virtualhost de sua preferência ).

Ative o módulo FastCgi:

#a2enmod fcgid

Certificado SSL

Entre na pasta

#cd /etc/ssl

Emitindo o certificado

#openssl req -config openssl.cnf -new -out nome_do_certificado.csr

Obs: O Comon Name, deverá ter o mesmo nome do servidor, exemplo: host.dominio.com.br

Retire a senha do certificado:

#openssl rsa -in privkey.pem -out my-server.key

Assinando o nosso certificado

#openssl x509 -in meu-servidor.csr -out my-server.cert -req -signkey my-server.key -days 365
ative o módulo ssl:

#ae2enmod ssl

ative o site ssl:

#ae2ensite default-ssl #(ou algum virtualhost, caso seja criado)


Anúncios

6 respostas em “Desempenho – apache com mpm-worker e fast-cgi

  1. Pingback: Desempenho: Apache com mpm-worker e fast CGI

  2. Pingback: Alta performance – apache com mpm-worker e fast-cgi « Blog Corporativo BSRSoft

  3. Será que não vale mais a pena rodar o PHP sobre um Apache sem o mpm-worker mas sem ter que usar Fast CGI e usar o Fast CGI apenas para um servidor de imagens (ou servidor de coisas estáticas) ?

  4. Uma combinação muito boa – acho que faltou explicar apenas o porquê das coisas 😉

    com o PHP como fastcgi é possível especificar quantos processos PHP iremos rodar no total. Isso, para quem controla VPS é extremamente útil. Com isso temos uma separação grande entre apache e PHP… com mod_php o php fica ‘embutido’ nos processos do aapche, com fastcgi, são processos separados. Bem fácil de gerenciar.

    Uso assim no meu site há um bom tempo 😉

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s