nginx em conjunto com Apache - Instalação e configuração no Debian e derivados

O Apache é uma ferramenta muito completa para conteúdo dinâmico e o nginx possui uma performance incrível. Contudo, ambos possuem desvantagens: o Apache consome uma grande quantidade de memória e o nginx não é bom o bastante, quando se trata de conteúdos dinâmicos.

[ Hits: 53.106 ]

Por: Bruno em 31/01/2014


Instalação e configuração



nginx: instalação

Para iniciar, precisamos instalar e configurar o nginx para servir as páginas estáticas do seu site.

Comece instalando utilizando o apt-get:

sudo apt-get install nginx

Após a instalação, você poderá seguir com a configuração do host virtual.
Será necessário realizar algumas configurações básicas.

nginx: configuração

Abra o arquivo de configuração do nginx:

sudo nano /etc/nginx/sites-available/example

A seguinte configuração pode ser usada no nginx para servir páginas estáticas. A configuração é bem parecida com a configuração padrão e os detalhes podem ser vistos na própria configuração, logo abaixo:

server {
       listen   80;

       root /var/www/;
       index index.php index.html index.htm;

       server_name example.com;

       location / {
       try_files $uri $uri/ /index.php;
       }

       location ~ \.php$ {

       proxy_set_header X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       proxy_set_header Host $host;
       proxy_pass http://127.0.0.1:8080;

       }

       location ~ /\.ht {
                deny all;
       }
}

As seguintes características foram definidas nesta configuração:
  • Definição do diretório base (root) para a aplicação WEB;
  • index.php foi definido como página de entrada;
  • A configuração try_files define que todas as requisições serão tratadas pelo nginx, caso não seja possível, a requisição será redirecionada para o proxy (Apache);
  • proxy_pass → Define o endereço do servidor proxy;
  • location ~ /\.ht { → Bloqueia o acesso direto ao .htaccess.

Esta configuração garante que todo arquivo com a extensão .php, será redirecionado para o Apache, que irá rodar na porta 8080.

Ativando o virtual host:

sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

Adicionalmente, remova a configuração padrão do nginx:

sudo rm /etc/nginx/sites-enabled/default

Apache: Instalação

Com os procedimentos já finalizados com nginx, é hora de instalar o Apache para processamento do conteúdo dinâmico:

sudo apt-get install apache2

Como ainda não iniciamos o nginx, o Apache estará rodando na porta 80.

Apache: configuração

Nós precisamos configurar o Apache para processar todas as páginas dinâmicas na porta 8080. Primeiro, abra os arquivos de configuração do Apache e altere a porta de escuta padrão:

sudo nano /etc/apache2/ports.conf

Procure e altere as linhas seguintes para manter o Apache rodando na porta 8080 e para restringir o acesso ao localhost (uma vez que todas as requisições serão feitas por meio do nginx localmente):

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Salve o arquivo e saia.

Copie o arquivo de configuração do virtual host padrão do Apache, para realizar as configurações sobre um template:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/example
$ sudo nano /etc/apache2/sites-available/example


A principal questão agora, é determinar que o virtual host do Apache irá rodar na porta 8080 (uma vez que o nginx já está rodando na porta 80). A linha seguinte cuida disso:


Tenha certeza que o Document Root está correto. Salve e saia do arquivo para ativar o virtual host:

sudo a2ensite example

Antes de testar o seu ambiente, precisamos configurar o PHP em seu Apache.

Instale, utilizando o seguinte comando:

sudo apt-get install php5

Reinicie os serviços, para que as configurações façam efeito:

sudo service apache2 restart
$ sudo service nginx restart


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração
   3. Resultado
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configuração do Compiz Fusion pós instalação

Sujando as mãos ao instalar Arch Linux (método de instalação novo)

Shared Config com Apache a la brasileira

Configuração do modem ADSL Siemens Santis

OCSInventory com inventário de pacote Microsoft Office - Instalação no Ubuntu Server

  
Comentários
[1] Comentário enviado por silent-man em 04/02/2014 - 18:11h

Simples, porém interessante!

Parabéns!

[2] Comentário enviado por ranzes em 10/02/2014 - 07:35h

De onde o Apache foi lançado em 2006???
Reveja seus textos o Apache já existe desde 1995.

[3] Comentário enviado por wiljunior em 12/02/2014 - 17:35h

Muito bom, gostei.

OBS: Na linha 17 do arquivo example do nginx, tem a letra "A" após os ";" e por isso o nginx não sobe.

proxy_set_header X-Forwarded-For $remote_addr;A

correto

proxy_set_header X-Forwarded-For $remote_addr;

[4] Comentário enviado por thiago_dias em 18/02/2014 - 11:45h

Estou começando a ler sobre Nginx e todos materiais que estou vendo, fala que ele trabalha muito bem com conteúdos dinâmicos. E em muitos testes de comparação, ele se mostrou superior ao Apache.

[5] Comentário enviado por marcelloinfoweb em 25/02/2014 - 22:23h


[4] Comentário enviado por thiago_dias em 18/02/2014 - 11:45h:

Estou começando a ler sobre Nginx e todos materiais que estou vendo, fala que ele trabalha muito bem com conteúdos dinâmicos. E em muitos testes de comparação, ele se mostrou superior ao Apache.


Isso é pura verdade! O cara que digitou o post esta um pouco desenformado...

[6] Comentário enviado por Lapis em 18/08/2015 - 23:30h


E como instalo o php no apache2?
Funciona perfeitamente em arquivos que estão na /var/www/index.php, mas em outros arquivos como /var/www/phpmyadmin/index.php não funciona.

[7] Comentário enviado por nikaway em 21/09/2015 - 18:09h

Oi, eu posso instalar o nginx e o apache ao mesmo tempo no mesmo sistema, certo? ok...
Nesse caso, ouvi dizer que o nginx não suporta o arquivo .htaccess, e tenho muitas configurações no .htaccess que não gostaria de abrir mão rsrs... Eu poderia usar o nginx para dar mais performance ao meu servidor e usar o Apache para páginas dinâmicas e também detectar as regras do .htaccess? Posso fazer isso? Ou será que daria confusão?
E como seria feito? Seria bom um vídeo-tutorial ensinando fazer todo esse procedimento.


[8] Comentário enviado por CharlesLocatelli em 24/09/2016 - 21:38h

Olá,
estou com o seguinte problema no local host:
403 Forbidden
nginx/1.6.2

uso LinuxMint Debian edition.
Grato,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts