Sei sulla pagina 1di 3

Nginx: Poderoso, rpido e fcil

Por Klaus Peter Laube | 26 de abril de 2012 | Desenvolvimento, Infraestrutura, Utilidades 6 comentrios Siga-nos: TwitterFacebookRSS Para quem (assim como eu) comeou com o PHP, uma das opes mais viveis para servir projetos na Web sempre foi o Apache. Open source, prtico e disponvel em quase toda hospedagem de respeito (afinal, ele vem por padro em quase toda distro Linux), h anos que ele faz a famosa trade AMP (Apache, MySQL e PHP). Acontece que com as demandas recentes que a internet tem exigido de algumas aplicaes Web (como Twitter e Facebook), a necessidade por performance comeou a ser uma grande premissa em determinados tipos de projetos. E apoiado nesse cenrio que o Nginx vem ganhando cada vez mais fora no mercado. Afinal, no a toa que ele conhecido por aguentar porrada.

A verdade sobre o Nginx (ou no)


O Nginx um servidor Web, proxy reverso, proxy balanceador de carga, e faz praticamente tudo que o Apache faz, s que muito mais rpido! Tcnicamente, o Nginx consome menos memria que o Apache, pois lida com requisies Web atravs do conceito de event-based web server, j o Apache baseado no conceito process-based server. David E. Chen faz uma excelente analogia entre os dois conceitos em seu artigo Explain Event-Driven Web Servers to Your Grandma. Eles no so necessariamente concorrentes, Apache e Nginx podem trabalhar juntos! possvel diminuir o consumo de memria do Apache fazendo com que as requisies Web passem primeiro pelo Nginx. Desse modo, o Apache no precisa servir arquivos estticos, e pode depender do bom controle de cache feito pelo Nginx. Bom, a inteno no denegrir a imagem do Apache (at parece que um simples mortal como eu conseguiria tal feito), ento vamos adiante.

Fcil?! Instalando e sendo bem recebido


Estou utilizando o Slackware 13.37 para realizar os procedimentos abaixo, mas acredito que eles possam ser executados em qualquer distribuio Linux, sem maiores problemas. Vamos comear fazendo o download da verso mais recente (at ento), direto do site oficial do Nginx:
$ wget http://nginx.org/download/nginx-1.0.11.tar.gz

O procedimento de instalao no difere em nada do mtodo tradicional que estamos acostumados no Linux. Apenas lembre-se de executar o make install como root:
$ $ $ $ tar -zxvf nginx-1.0.11.tar.gz; cd nginx-1.0.11 ./configure make make install

O Nginx ser instalado em /usr/local/nginx/. Voc pode iniciar o servio atravs do comando (como root):
$ /usr/local/nginx/sbin/nginx

Acessando o seu localhost, o servio estar pronto e dando boas vindas!

Configurando um servidor simples


Para homenagear o nosso amigo Apache, vamos fazer o Nginx servir um HTML com a clssica mensagem It works, em outra porta e path. Abra (como root) o arquivo /usr/local/nginx/conf/nginx.conf, no final do arquivo, adicione a seguinte expresso antes do fechamento das chaves:
include example;

Esta expresso importar o arquivo /usr/local/nginx/conf/example, que criaremos a seguir:


server { listen 127.0.0.1:8080; server_name example; access_log /usr/local/nginx/logs/example.access.log; error_log /usr/local/nginx/logs/example.error.log; location / { root /var/www/example; index index.html index.htm; } }

Intuitivo no?! Vamos criar o path onde armazenaremos o HTML:


mkdir /var/www/example echo "It works! " > /var/www/example/index.html

Basta acessar o endereo localhost:8080, e pronto! Como possvel perceber, os arquivos de configurao do Nginx so simples e intuitivos. Existem vrias referncias na Web ensinando a montar proxy reverso, servir pginas dinmicas com FastCGI ou WSGI, utilizar SSL, etc. Nada que o bom amigo Google no possa resolver.

Consideraes finais

Quer dizer que agora eu tenho que largar tudo e correr para utilizar o Nginx? A resposta no. Gosto dos ensinamentos do pessoal da 37Signals, e um deles para deixarmos a preocupao com performance para quando isto for realmente um problema (caso contrrio, ningum comearia projetos em Ruby ou Python). Portanto, se voc tem um blog em WordPress servido atravs de um Apache deixe estar. Garanto que o Apache a melhor soluo para voc neste momento. E caso voc venha a ter problemas com performance, garanto que instalar e configurar um Nginx dentro da sua infraestrutura ser o menor dos seus problemas.