Introdução ao Apache

O servidor web é um software que fica responsável por aceitar pedidos em HTTP de clientes. Quando uma pessoa utiliza um navegador, como o Chrome, Internet Explorer, Firefox ou outro qualquer, para poder acessar um site, o navegador envia uma requisição HTTP para o servidor (que pode ser um servidor Apache). O servidor, por sua vez, devolve o conteúdo solicitado por meio de uma resposta do tipo HTTP para o navegador.

Como na web não é possível prever a que hora se dará uma conexão, os servidores web precisam estar disponíveis o tempo todo.

O servidor Apache é o mais utilizado do mundo. Cerca de aproximadamente 50% dos servidores são Apache.

Algumas das vantagens de se utilizar um servidor Apache são:

  • É gratuito;
  • Pode ser instalado em Linux, MacOS e Windows;
  • É capaz de lidar com grandes quantidades de tráfego com configuração mínima;
  • Pode ser escalado com facilidade;
  • Permite a remoção de módulos indesejados para torná-lo mais leve e eficiente.

O objetivo deste tutorial é utilizar o Apache em um sistema operacional gratuito, nos servidores EC2 (AWS Elastic Computing) da Amazon Web Services (AWS). Atualmente, as imagens de sistemas operacionais disponíveis no EC2 da AWS são:

  • Ubuntu Server (gratuito)
  • Amazon Linux 2 AMI (gratuito)
  • SUSE Linux Enterprise Server (pago)
  • Red Hat Enterprise (pago)
  • Microsoft Windows Server (pago)

A imagem do Amazon Linux 2 AMI é gratuíta, porém, exclusiva da Amazon. Isso significa que não é possível instalá-la em um computador pessoal ou servidor fora da Amazon. Portando, caso a aplicação utilize algum recurso exclusivo dessa versão, ela somente poderá ser executada nos servidores da Amazon ou será necessário reajustá-la para poder ser executada em outras distribuições de Linux, como Debian, SUSE, Red Hat, Ubuntu, Fedora, dentre outras.

Com relação a instalação e utilização do Servidor Apache, a imagem do Amazon Linux 2 AMI pode ser utilizada sem maiores preocupações com relação a portabilidade do Apache, porque ele é muito utilizado nas principais distribuições de Linux, na plataforma Windows e Mac. No entanto, esse tutorial irá utilzar o Ubuntu Server por ser um sistema operacional livre. Sua imagem dele pode ser baixada, instalada e utilizada sem custo e necessidade de licença.

Quando o usuário monta uma máquina na AWS usando um sistema operacional pago, provavelmente pagará mais caro pelo seu uso do que se tivesse optado por um sistema operacional gratuito. Por exemplo: Dia 11/02/2021, no datacenter da AWS em São Paulo, uma instância do tipo t3.small, com 2 GiB RAM, apresentava o seguinte custo por hora, em dólares americanos:

  • Ubuntu Server (0,0336 USD/hora)
  • SUSE Linux Enterprise Server (0,0646 USD/hora)
  • Red Hat Enterprise (0,0936 USD/hora)
  • Microsoft Windows Server (0,052 USD/hora)

Use o link:AWS EC2 - Pricing, caso deseje ter noção de custo atualizado.

O Linux pode ser instalado de modo automático, a partir da linha de comando. Nesse caso, utiliza-se o comando apt ou apt-get para baixar e instalar o Apache a partir de algum repositório online do tipo .deb.

Esse tipo de instalação possui a vantagem de ser rápida, porém, apresenta algumas desvantagems:

  • É uma compilação genérica feita para atender a maioria dos usuários, portanto não é otimizada para o hardware do usuário (cpu e espaço de armazenamento).
  • Toda distribuição de Linux tem o seu pacote de instalação do Apache, porém, em muitos casos a instalação não é realizada de acordo com a hierarquia de arquivos padrão (Filesystem Hierarchy Standard - FHS). Além disso, muitos pacotes implementam procedimentos de configuração personalisado. Nesses casos, migrar de uma distribuição de Linux para outra gera muita confusão e dá muito trabalho.
  • Nomes dos arquivos de configuração e/ou procedimento de configuração do Apache podem ser diferentes entre uma distribuição e outra.

Este turorial explica como fazer o download do código fonte do Apache, compilá-lo e instalá-lo de acordo com o FHS. Informções sobre os módulos mais utilizados, prodedimentos de configuração e otimização também são fornecidos.