Você já teve a curiosidade de saber o que está por trás das páginas que você acessa e são carregadas em seu navegador? Ou o que processa os dados enviados pelos formulários que você preenche? Pois bem, esta não é uma tarefa simples e exige que os servidores web existam para lidar com essas solicitações.Por isso, neste post vamos aprender mais sobre o servidor apache, um servidor web de código aberto e gratuito.
Criado em 1995, o Apache é um software poderoso e muito famoso, principalmente por oferecer diversos recursos e uma interface amigável para aquelas pessoas que desejam usufruir de seus benefícios para lidar com requisições entre cliente e servidor.
A seguir, veja os principais assuntos sobre o servidor apache que vamos conhecer:
- O que é apache?
- Conheça a história do apache!
- Como funciona um servidor apache?
- Quais as vantagens do servidor apache?
- Quais as desvantagens do servidor apache?
- Quais os principais recursos do apache?
- Compatibilidades com hardware e SO!
- Qual a relação entre o TUX e o apache?
- O que é Apache Tomcat?
- Como verificar qual servidor web você está usando?
- Como instalar o servidor apache? O passo a passo!
- Quais as diferenças entre o servidor apache e os outros servidores web?
O que é apache?
O Apache é um servidor web de código aberto e oferecido gratuitamente pela Apache Software Foundation (ASF), responsável por seu desenvolvimento e manutenção. Sua principal funcionalidade é disponibilizar conteúdos presentes na internet, como um site, por exemplo, por meio da comunicação entre um servidor e um navegador.
O que é um servidor web?
Um servidor web é um programa que provê conteúdos dispostos em uma rede. Para isso, é realizada uma conexão entre um servidor físico e um navegador, como Google Chrome e Firefox. Um servidor por ser acessado tanto de uma rede interna, chamada de intranet, quanto externa, a famosa internet.
Conheça a história do apache!
O servidor Apache surgiu em 1995, como um projeto desenvolvido por Rob McCool na National Center of Supercomputing Applications (NCSA). Após deixar a empresa, McCool também deixou de trabalhar no software, então outras pessoas interessadas começaram a adaptar as funcionalidades do servidor às suas necessidades.
Entre as principais pessoas colaboradoras estavam Brian Behlendorf e Cliff Skolnick, que passaram a adicionar recursos e realizar correções no sistema, chamados de “patches”. Em pouco tempo, outras oito pessoas foram adicionadas ao projeto e então o grupo ficou conhecido como Grupo Apache.
Em março de 1999 foi criada a Apache Software Foundation, uma organização sem fins lucrativos. A fundação é responsável não só por manter o servidor apache, mas também por orientar e incubar diversos outros projetos gratuitos de nível empresarial.
Segundo as pessoas desenvolvedoras do servidor, o nome apache é uma referência a tribo de nativos americanos de mesmo nome, conhecidos por sua resistência e estratégias de combate. Dessa forma, a nomenclatura foi adotada em alusão a resistência da comunidade de software livre aos interesses do setor privado, bem como devido a estabilidade e versatilidade do servidor web.
Como funciona um servidor apache?
O Apache é um software executado em um servidor. Sua função é processar requisições e devolver o conteúdo solicitado pela rede. A fim de simplificar o processo, vamos a um exemplo detalhado, onde um usuário fictício, chamado João, deseja acessar o site “petsfofos.com”, que contém imagens de diversos animais de estimação.
Para acessar o site, João utilizará um navegador de internet, como o Firefox. Então, o navegador enviará um pedido para o servidor, solicitando o conteúdo necessário para carregar o site. Nesse momento o servidor apache entra em ação, processando a requisição e devolvendo como resposta todos os arquivos necessários. Desse modo, o navegador vai exibir o site e seu conteúdo para João.
De modo técnico, o que ocorre primeiramente é a obtenção do endereço de IP do site através de cache ou de servidor DNS (Domain Name System). O endereço IP serve para localizar na internet onde está hospedado o site “petsfofos.com”. Em seguida, o navegador solicita a URL completa ao servidor.
Logo após, o servidor envia como resposta o conteúdo solicitado ou uma mensagem, que pode indicar a ocorrência de um erro, como o erro 404, retornado quando o conteúdo não é encontrado ou o erro 401, quando o acesso é negado.
Toda essa comunicação entre máquina e servidor é realizada através do protocolo HTTP (Hypertext Transfer Protocol), um protocolo de transferência de dados; e assim o apache é responsável por facilitar a comunicação entre ambos os lados.
Quais as vantagens do servidor apache?
O servidor apache é utilizado por diversas aplicações mundo afora, inclusive por gigantes como IBM e Microsoft. Além disso, sua capacidade de personalização o tornou reconhecido pela comunidade desenvolvedora. A seguir, confira as principais vantagens de se utilizar este servidor web.
- Gratuito: um dos principais pontos fortes do apache é sua gratuidade, ou seja, não há necessidade de pagar licenças ou assinaturas para utilizá-lo;
- Estabilidade: outro atributo do servidor é sua estabilidade durante a execução, dificilmente apresentando erros;
- Personalização: o servidor apache é baseado em módulos, permitindo à pessoa desenvolvedora criar e adicionar diversos recursos extras;
- Fácil configuração: o servidor web possui uma interface amigável, dessa forma até pessoas usuárias iniciantes podem usufruir de seus recursos sem dificuldade;
- Atualizações frequentes: o Apache recebe atualizações frequentemente, o que mantém a segurança contra brechas no código e a compatibilidade com outras tecnologias;
- Compatibilidade: o servidor apache possui compatibilidade tanto com o sistema Windows quanto com MacOS, Linux e Unix. Além disso, tem excelente integração com WordPress e suporte a linguagens PHP, Perl, Python e banco de dados MySQL;
- Variedade de recursos: mais um ponto positivo do apache são seus diversos recursos, como painel administrativo, mensagens de erro personalizadas, esquema de autenticação, entre outros.
Quais as desvantagens do servidor apache?
Apesar da grande quantidade de vantagens, o servidor web apache também possui alguns pontos negativos. O principal deles consiste na perda de desempenho em casos de tráfego altíssimo na aplicação.
Além disso, outro ponto fraco reside em sua grande quantidade de opções de configurações. Dessa forma, é possível que a pessoa que esteja utilizando o servidor deixe passar algumas brechas de segurança geral no sistema.
Quais os principais recursos do apache?
O servidor apache é uma ferramenta robusta, que oferece a uma pessoa utilizadora uma série de recursos. Confira, a seguir, os principais pontos disponibilizados pelo software:
- Painel de controle: acesso ao servidor através de painel;
- Segurança: o servidor apache permite o uso de autenticação, com usuário e senha válidos, e a especificação de restrições de acesso para cada endereço, pasta ou arquivo do servidor.
- Personalização: além do apache permitir a pessoa utilizadora a criação e adição de recursos extras, também é possível customizar logs e mensagens de erros.
- Host virtual e negociação de conteúdo: o servidor web possibilita a execução de duas ou mais páginas de modo simultâneo, além de permitir que essas páginas possam ser exibidas no idioma requisitado pelo navegador;
- SMTP (Simple Mail Transfer Protocol): o servidor web é compatível com o envio de mensagens de correio eletrônico;
- FTP (File Transfer Protocol): além de mensagens, o Apache também permite a transferência de arquivos e dados entre máquinas e acesso a sistemas de arquivos remotos.
Compatibilidade com hardwares e SO!
O servidor web apache é um software multiplataforma. Isso significa que este servidor pode ser utilizado em diferentes sistemas operacionais, como o Windows, MacOS, Linux e Unix. Além disso, o Apache oferece compatibilidade com as linguagens de programação PHP, Perl e Python e o uso de criptografia SSL e TLS, que conferem aos sites uma camada de segurança.
Já se tratando de hardware, um computador com processador Pentium e 64 MB de memória RAM são suficientes para o seu funcionamento. Entretanto, é importante levar em consideração o tipo de aplicação que se deseja construir, pois diferentes aplicações podem exigir uma carga de processamento maior da máquina. Para mais detalhes sobre a especificação desse servidor web, acesse o site oficial, o Apache HTTP Server Project.
Qual a relação entre o TUX e o apache?
O TUX também é um servidor web de código aberto, desenvolvido para operar no Linux e mantido pela Red Hat, empresa que disponibiliza soluções baseadas nesse sistema operacional. O TUX funciona em nível Kernel, ou seja, ele é executado no núcleo do sistema operacional.
Explicando melhor, o Kernel é um componente do sistema operacional e é responsável por integrar o funcionamento do hardware ao software de uma máquina e controlar os recursos do sistema. Ao operar nessa camada, o TUX possibilita a entrega de páginas estáticas de modo muito mais otimizado. Por outro lado, a complexidade de uso desse servidor aumenta consideravelmente e não é recomendado para iniciantes no assunto.
O TUX pode utilizar daemons, programas que rodam em plano de fundo, para lidar com algumas solicitações e é daí que surge sua relação com o apache. Sempre que o TUX encontra uma solicitação difícil de lidar, ele a encaminha para o apache, que atua como um daemon, e facilita a leitura da solicitação. Desse modo, TUX e apache agem de modo acoplado, auxiliando no processamento de solicitações.
O que é o Apache Tomcat?
O Apache Tomcat também é um servidor web de código aberto e disponibilizado gratuitamente pela Apache Software Foundation. É daí que vem o “Apache” de seu nome. Tal como o servidor apache, o Tomcat também realiza a conexão entre navegador e servidor através do protocolo HTTP, porém seu desenvolvimento é exclusivo para aplicações em Java.
Além de atuar como servidor web, o Tomcat também executa diferentes especificações de Java, como Java Servlet, JavaServer Pages, WebSocket e Java EL, que atuam tratando requisições do lado do servidor. Quando se trata da criação de containers servlet, para lidar com páginas dinâmicas, o Tomcat é um software de referência.
Como verificar qual servidor web você está usando?
Seja por curiosidade ou por necessidade, você já chegou a se perguntar qual é o servidor web utilizado nos sites que você acessa? Pois bem, agora vamos mostrar um passo a passo sobre como obter esta informação através do protocolo telnet, confira abaixo.
No Windows
Se você está usando Windows, será necessário ativar o protocolo telnet. Por isso, na aba de pesquisa do sistema operacional, busque por “optionalFeatures”. Então, na lista de recursos, procure por “Cliente Telnet”, selecione o checkbox e clique em “Ok”. Aguarde o Windows finalizar a ativação.
Após ativado, acesse o terminal e digite o comando telnet dominio.com 80 e aperte a tecla enter. Onde está dominio.com substitua pelo endereço do site que deseja consultar o servidor, como betrybe.com, por exemplo.
Em seguida, o telnet vai se conectar ao domínio informado. Uma tela sem conteúdo será exibida, então aperte a tecla enter. Logo depois, serão exibidos os dados da rede daquele domínio, incluindo o servidor web utilizado na linha “Server”, como na imagem abaixo.
No Linux
Para consultar o servidor web de um site no Linux, abra o terminal e informe o comando telnet chkconfig on, em seguida digite restart /etc/init.d/xinetd. Após isso, informe o comando telnet dominio.com 80. Substitua dominio.com pelo domínio do site ao qual deseja consultar e aperte a tecla enter. Após conectado, aperte enter novamente e as informações de rede do site em questão serão exibidos no terminal.
No MacOS
Para acessar o telnet no MacOS, abra o terminal e digite o comando brew install telnet. Logo após, informe o comando telnet dominio.com 80. Onde está dominio.com, substitua pelo domínio do site ao qual deseja verificar o servidor web e aperte enter. Após conectado, aperte enter novamente, a informação sobre o servidor utilizado vai ser exibida juntamente com outras informações da rede.
Como instalar o servidor apache? O passo a passo!
Instalação no Linux
No Linux, nas versões que utilizam Ubuntu, o servidor apache pode ser instalado por meio do comando apt-get. Caso sua distribuição Linux seja diferente dessas, é aconselhável baixar o pacote adequado a sua versão, disponível no site da Apache Foundation.
Para iniciar, abra o terminal e digite o comando apt-get install apache2. Para testar se seu servidor está funcionando, acesse o navegador e digite localhost, uma página com a mensagem “It works!” deverá aparecer. Caso deseje reiniciar o servidor, digite o comando /etc/apache2/conf.d/apache2 restart. Já para parar o servidor, informe /etc/apache2/conf.d/apache2 stop.
Instalação no Windows
Em suas versões mais recentes (2.4 no momento), o apache não disponibiliza um instalador. Desse modo, para utilizar o servidor, é necessário baixar os arquivos binários no site da Apache HTTP Server Project ou fazer download de sua versão pré-compilada, em um dos sites indicados em seu site oficial. A página com as recomendações pode ser acessada neste link.
Nesse tutorial, vamos utilizar o site Apache Lounge. Portanto, uma vez na página acima referida, clique na opção “Apache Lounge” e baixe o arquivo de acordo com a arquitetura de seu sistema operacional.
Uma vez efetuado o download da versão pré-compilada do apache, extraia o arquivo e copie a pasta “Apache24”. Em seguida, cole-a na raiz de seu disco C:\. Depois, procure por “Configurações avançadas do sistema” na aba de busca do Windows. Acesse a aba “Avançado” e clique em “Variáveis de ambiente”.
Em “Variáveis do sistema”, procure por “Path” e o selecione e em seguida clique em “Editar”. Na tela “Editar variáveis de ambiente”, clique em novo e na linha em branco adicione “C:\Apache24\bin”. Esse caminho indicará onde estão os arquivos binários do apache que deverão ser acessados pelo sistema.
Por fim, procure na barra de pesquisa do Windows por “Powershell” e acesse como administrador. Já no terminal, digite o comando httpd, para iniciar o servidor apache. Em seguida, no navegador digite localhost. Uma página com a mensagem “It works!” será exibida e indicará que seu servidor está sendo executado.
Instalação no MacOS
No MacOS, a instalação do servidor apache é bem mais simplificada, uma vez que o software já vem instalado por padrão, bastando apenas ativá-lo. Portanto, veremos agora como realizar esta ativação.
Inicie abrindo o terminal em modo root, em seguida digite o comando sudo apachectl start, e pronto!. Agora, no navegador, digite localhost. Uma página contendo a mensagem “It works!” será exibida, indicando que o servidor está sendo executado.
Quais as diferenças entre o apache e outros servidores web?
Agora que já temos uma boa noção sobre como o servidor apache funciona e como instalá-lo, é hora de considerar as funcionalidades que este servidor web oferece quando comparado a outros disponíveis na internet.
Servidor apache Vs Apache Tomcat
O primeiro software que vamos comparar é o Tomcat, abordado anteriormente. Quando se trata de apache e Tomcat, o primeiro ponto no qual o apache se sobressai é em relação a diversidade de linguagens de programação que podem ser utilizadas. Enquanto o Tomcat se limita a executar Java, o Apache permite utilizar PHP, Perl, Python e ainda possibilita a adição e criação de novos recursos.
Outro ponto se trata da eficiência ao carregar páginas estáticas. Nesse caso, o Tomcat é menos eficiente, pois ele realiza o carregamento de vários arquivos e bibliotecas Java, que muitas vezes não vão ser utilizadas. Além disso, o Tomcat também possui instalação e configuração mais complexos se comparados ao Apache.
Servidor apache Vs NGINX
O NGINX (se pronuncia Engine-X) é um servidor web criado em 2004, com o objetivo de solucionar um grande ponto fraco do apache: a sobrecarga em aplicações de tráfego muito alto. Por isso, se seu sistema for ter muitos acessos, opte pelo NGINX.
Ainda se tratando de eficiência, esse servidor tem uma arquitetura particular, o que o torna um software muito mais escalável. Enquanto no apache cada solicitação gera um processo, no NGINX todas as solicitações são manipuladas em um único encadeamento. Esse processo principal gerencia outros processos menores, aos quais são distribuídas as solicitações recebidas.
Entretanto, se sua aplicação for de pequeno porte, não ultrapassando cerca de dez mil conexões simultâneas, ou se você estiver iniciando na área, o apache ainda é o servidor web mais recomendado. Isso se deve por conta do grau de dificuldade de instalação e configuração, que no caso do NGINX é mais complexo.
Ao longo do texto, você pode notar que o servidor apache é um servidor web poderoso. Além de ser gratuito e compatível com diferentes sistemas operacionais, o Apache oferece uma série de recursos para o desenvolvimento da sua aplicação, como a criação e adição de recursos extras e a diversidade de linguagens de programação que podem ser utilizadas, como o PHP, Perl e Python.
Por isso, sempre que você acessar uma página na internet, lembre-se de que a requisição realizada pelo seu navegador e a resposta devolvida pelo servidor podem estar sendo processadas por um servidor apache.
Se você se interessou pelo assunto, pode também gostar de dar uma olhada na linguagem PHP, muito utilizada em conjunto com este servidor.