Apache e Nginx são servidores da web gratuitos, de código aberto e os mais usados no mundo.
O Apache é conhecido por seu poder e compatibilidade de back-end, enquanto o Nginx é conhecido por sua velocidade.
O Nginx fornece um rico conjunto de recursos, incluindo balanceamento de carga, segurança e aceleração. Usar o Nginx como proxy reverso permite usar esses recursos para qualquer aplicativo da web.
Configurar um proxy reverso ajuda a ocultar a identidade de seus servidores backend e protegê-los de ataques. Um proxy reverso também executa o balanceamento de carga e distribui a solicitação do cliente entre os servidores de backend.
Isso pode ser muito útil quando alguns servidores ficam sobrecarregados devido a um aumento repentino nas solicitações do cliente.
Usar o Nginx como proxy reverso para o Apache permitirá que os dois servidores trabalhem juntos e você aproveitará os benefícios de ambos. Você pode monitorar facilmente o tráfego que entra e sai por meio do proxy reverso.
Neste tutorial, aprenderemos como instalar e configurar o Nginx como um proxy reverso para Apache no Ubuntu 18.04 VPS.
Vamos configurar o Apache para rodar na porta 8080, configurar o Nginx para rodar na porta 80 e encaminhar as solicitações do cliente vindas da porta 80 para o servidor da web Apache.
Pré-requisitos
- Um novo VPS de servidor Ubuntu 18.04
- Um nome de domínio válido é apontado para seu endereço IP VPS. Neste tutorial, usaremos example.com
Etapa 1 – Criar um novo Servidor
Primeiro, crie um novo servidor, escolhendo Ubuntu 18.04 como sistema operacional, com pelo menos 2 GB de RAM. Conecte-se ao seu Cloud Server via SSH e faça o login usando as credenciais destacadas no topo da página.
Assim que você estiver logado em seu servidor Ubuntu 18.04, execute o seguinte comando para atualizar seu sistema básico com os pacotes disponíveis mais recentes.
apt-get update -y
Etapa 2 – Instalar e configurar o Apache
Primeiro, você precisará instalar o servidor da web Apache em seu VPS. Você pode instalar o Apache executando o seguinte comando:
apt-get install apache2 -y
Depois de instalado, inicie o serviço da web Apache e ative-o para iniciar após a reinicialização do sistema com o seguinte comando:
systemctl start apache2 systemctl enable apache2
Por padrão, o Apache escuta na porta 80. Você precisará configurar o Apache para escutar na porta 8080. Você pode fazer isso editando o arquivo ports.conf:
nano /etc/apache2/ports.conf
Encontre a seguinte linha:
Listen 80
Substitua-o pelo seguinte:
Listen 127.0.0.1:8080
Salve e feche o arquivo. Em seguida, abra o arquivo host virtual padrão do Apache com o seguinte comando:
nano /etc/apache2/sites-available/000-default.conf
Encontre a seguinte linha:
<VirtualHost *:80>
Substitua-o pelo seguinte:
<VirtualHost 127.0.0.1:8080>
Salve e feche o arquivo quando terminar. Em seguida, reinicie o serviço da web Apache para aplicar todas as alterações de configuração:
systemctl restart apache2
Agora você pode verificar se o servidor da web Apache está escutando na porta 8080 com o seguinte comando:
netstat -ant | grep 8080
Você deve ver a seguinte saída:
tcp 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Etapa 3 – Instalar e configurar o Nginx
Em seguida, você precisará instalar o Nginx e configurá-lo como um proxy reverso para encaminhar as solicitações provenientes da porta 80 para o servidor da web Apache que está escutando na porta 8080.
Você pode instalar o servidor da web Nginx executando o seguinte comando:
apt-get install nginx -y
Depois de instalado, inicie o serviço Nginx e ative-o para iniciar após a reinicialização do sistema:
systemctl start nginx systemctl enable nginx
Em seguida, configure o proxy reverso Nginx criando um novo arquivo de host virtual:
nano /etc/nginx/sites-available/example.com
Adicione as seguintes linhas:
server { listen 80; root /var/www/html/; index index.html index.htm; server_name example; location \ { 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; } }
Salve e feche o arquivo. Em seguida, ative o arquivo de configuração do host virtual com o seguinte comando:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Em seguida, verifique se há algum erro de sintaxe no Nginx com o seguinte comando:
nginx -t
Se tudo estiver correto, você deve obter a seguinte saída:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Por fim, reinicie o serviço Nginx para aplicar estas alterações de configuração:
systemctl restart nginx
Etapa 4 – Teste o proxy reverso Nginx
Nginx e Apache estão instalados e configurados corretamente. Agora, você pode testar a funcionalidade do proxy reverso Nginx.
Para fazer isso, abra seu navegador da web e digite o URL http://example.com. Você será redirecionado para a página padrão do Apache, conforme mostrado na seguinte tela:
Conclusão
Parabéns! Você instalou e configurou com êxito o Nginx como um proxy reverso para o servidor da web Apache. Você também pode configurar o Nginx como um proxy reverso para outros aplicativos como Tomcat, Wildfly, Node.Js e Glassfish.