Nginx: Poderoso, rápido e fácil
Por Klaus Peter Laube | 26 de abril de 2012 | Desenvolvimento, Infraestrutura, Utilidades 6 comentários
Siga-nos: TwitterFacebookRSS
Para quem (assim como eu) começou com o PHP, uma das opções mais viáveis para servir projetos na Web sempre foi o Apache. Open source, prático e disponível em quase toda hospedagem de respeito (afinal, ele vem por padrão em quase toda distro Linux), há anos que ele faz a famosa tríade “AMP” (Apache, MySQL e PHP).
Acontece que com as demandas recentes que a internet tem exigido de algumas aplicações Web (como Twitter e Facebook), a necessidade por performance começou a ser uma grande premissa em determinados tipos de projetos. E é apoiado nesse cenário que o Nginx vem ganhando cada vez mais força no mercado. Afinal, não é a toa que ele é conhecido por “aguentar porrada”.
A verdade sobre o Nginx (ou não)
O Nginx é
praticamente tudo que o Apache faz, só que muito mais rápido!
de
carga,
e
faz
Técnicamente, o Nginx consome menos memória que o Apache, pois lida com requisições Web através 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 não são necessariamente “concorrentes”, Apache e Nginx podem trabalhar juntos! É possível diminuir o consumo de memória do Apache fazendo com que as requisições Web passem primeiro pelo Nginx. Desse modo, o Apache não precisa servir arquivos estáticos, e pode depender do bom controle de cache feito pelo Nginx.
Bom, a intenção não é denegrir a imagem do Apache (até parece que um simples mortal como eu conseguiria tal feito), então vamos adiante.
Fácil?! Instalando e sendo bem recebido
Estou utilizando o Slackware 13.37 para realizar os procedimentos abaixo, mas acredito
que
maiores
problemas.
eles
possam
ser
executados
em
qualquer
distribuição Linux,
sem
Vamos começar fazendo o download da versão mais recente (até então), direto do site oficial do Nginx:
$ wget http://nginx.org/download/nginx-1.0.11.tar.gz
O procedimento de instalação não difere em nada do método 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 serviço através do comando (como root):
$ /usr/local/nginx/sbin/nginx
Acessando o seu localhost, o serviço 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 clássica 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 expressão antes do fechamento das chaves:
include example;
Esta expressão 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 não?! Vamos criar o path onde armazenaremos o HTML:
mkdir /var/www/example echo "It works! " > /var/www/example/index.html
Basta acessar o endereço localhost:8080, e pronto!
Como é possível perceber, os arquivos de configuração do Nginx são simples e intuitivos. Existem várias referências na Web ensinando a montar proxy reverso, servir páginas dinâmicas com FastCGI ou WSGI, utilizar SSL, etc. Nada que o bom amigo Google não possa resolver.
Considerações finais
Quer dizer que agora eu tenho que largar tudo e correr para utilizar o Nginx? A resposta é não.
Gosto dos ensinamentos do pessoal da 37Signals, e um deles é para deixarmos a preocupação com performance para quando isto for realmente um problema (caso contrário, ninguém começaria projetos em Ruby ou Python).
Portanto, se você tem um blog em WordPress servido através de um Apache… deixe estar. Garanto que o Apache é a melhor solução 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.
Lebih dari sekadar dokumen.
Temukan segala yang ditawarkan Scribd, termasuk buku dan buku audio dari penerbit-penerbit terkemuka.
Batalkan kapan saja.