Como instalar Servidor Web Apache no Ubuntu e Debian

Apache



Boa noite Galera!

Vamos ensinar nesse post como instalar e configurar o Apache Web Server em distribuições Ubuntu e Debian, vamos também mostrar algumas configurações que podem ser efetuadas dentro dele.

Primeiramente, o que é Apache?

É o servidor web mais popular da internet, 50% dos sites ativos no mundo utilizam Apache.

Como instalar o Apache no Ubuntu e Debian

Se você ainda não tiver o Apache instalado você poderá realizar a instalação executando os comandos abaixo:

sudo apt-get update
sudo apt-get install apache

Precisa de somente isso para ter um servidor web funcionando. Se você visitar o endereço IP ou o nome de sua maquina no navegador web verá a pagina padrão do Apache.

Hierarquia de arquivos do Apache no Ubuntu e Debian

Após a instalação o Apache mantém seus principais arquivos de configuração dentro do diretório /etc/apache2.
Existem alguns arquivos e subdiretórios dentro desse caminho, abaixo segue uma explicação básica dos mais importantes.

apache2.conf: Este é o arquivo de configuração principal do servidor, quase toda a configuração é realizada dentro desse arquivo (Existem ambientes que possuem arquivos separados para deixar mais simples a instalação). O apache utiliza esse arquivo como ponto central para aplicar os detalhes de configuração do Servidor Web.

ports.conf: Esse arquivo é utilizado para especificar as portas que os hosts virtuais devem escutar. Caso esteja configurando SSL verifique se este arquivo está correto.

conf.d/ : Esse diretório é utilizado para realizar configurações especificas do Servidor Web. Ele é muito utilizado para definir configurações de SSL e as escolhas de segurança predefinidas.

sites-available/ : Este diretório contém todos arquivos dos virtual hosts que definem diferentes sites. Eles irão definir qual conteudo será servido para as requisições. Estas são configurações disponíveis e não ativas.

sites-enabled/ : Nesse diretório estabelece quais definições de virtual hosts estão realmente sendo usadas. Comumente temos nesse diretório links simbólicos para arquivos definidos no diretório "sites-available."

mods-[enabled,available]/ : Eles são semelhantes com os diretórios acima, porém eles definem quais módulos podem ser carregados.

Como podemos ver, a configuração do apache não é realizada somente em um único arquivo monolítico, ele trabalha de uma forma modular onde podemos adicionar e remover a configuração conforme a necessidade.

Explorando o arquivo apache2.conf

As principais configurações do seu servidor Apache se encontra no arquivo "/etc/apache2/apache2.conf".

O arquivo pode ser dividido em 3 partes: configuração global, configuração para o servidor padrão e configuração dos virtuais hosts.

No Ubuntu e Debian, a maioria dos arquivos são para definições globais, e a configuração do servidor padrão e hosts virtuais é tratada no final, usando a diretiva "include"

A diretiva "include" permite que o Apache leia outros arquivos de configuração no arquivo atual no local em que a instrução aparece. O resultado é que o Apache gera dinamicamente um arquivo de configuração abrangente na inicialização.

Vamos focar na primeira parte do arquivo para saber um pouco mais das definições globais do apache.



Configurações Globais

Nesta parte iremos mostrar um pouco das opções que controlam como o Apache funciona como um todo, abaixo iremos mostrar algumas dessas opções e seus significados:

Timeout
Por padrão ele é definido como 300, significa que seu apache terá no maximo 300 segundos para atender cada solicitação. Podemos realizar um "tunning" dessa configuração porque ele é considerado muito alto para as requisições, podemos configurar para 60 segundos que é considerado um bom valor.

KeepAlive
Está configuração se estiver como "On" irá permitir que a conexão fique aberta para tratar varias solicitações do mesmo cliente. Caso ela esteja como "Off" cada requisição terá que abrir uma nova conexão, isso pode ser prejudicial dependendo da capacidade do seu ambiente.

MaxKeepAliveRequests
Controla o máximo de solicitações separadas que cada conexão poderá manipular antes de ser concluída. Com esse parâmetro setado com valor alto, permitirá que seu Servidor Web provisione o conteúdo para o cliente de uma forma mais eficaz.

KeepAliveTimeout
Informa quanto tempo o Apache deve esperar para a próxima solicitação após o encerramento da ultima. Se o limite do tempo for excedido a conexão irá morrer.
Resumindo, isso significa que na próxima vez que um conteúdo for solicitado o servidor ira abrir uma nova conexão para responder a requisição do cliente.

MPM

Nessa parte iremos falar um pouco e MPM (Multi-Processing Module). Você pode verificar os módulos que estão compilados no seu Apache digitando o comando abaixo:

apache2 -l

Tendo como resultado as informações abaixo:

Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c


Configurações do Arquivo Virtual Host Padrão

Por padrão a configuração do Virtual Host pode ser encontrada em um arquivo chamado "default" dentro do diretório "sites-available".
Para sabermos mais mais sobre o formato desses arquivo podemos abri-lo com o seguinte comando.

sudo vi /etc/apache2/sites-available/default

Obtendo o resultado abaixo:

<VirtualHost *:80>
        ServerAdmin contatos@middlewarebrasil.com

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
. . .


Por padrão o Virtual Host vem configurado para "escutar" qualquer solicitação na porta 80 que é a porta http padrão. Observe acima que isso é definido ona declaração onde ele informa "*:80".
Caso queira que seu Servidor Web escute em outra porta as requisições http é só alterar o valor da porta colocando por exemplo "<VirtualHost *:8081>". No navegador você irá acessar seu Servidor Web através da URL http://<ip-servidor>:8081/.



Configurações especificas do Virtual Host

Essas configurações são realizadas dentro da definição do Virtual Host.
A opção "ServerAdmin" especifica um e-mail de contato que deve ser usado quando há problemas no servidor. Isso pode ser inserido em uma página de erro se você tiver "ServerSignature" definido como "Email" no arquivo "/etc/apache2/conf.d/security", portanto, certifique-se de que está disposto a receber o e-mail se você ajustar essa configuração.

Agora vamos verificar a definição "ServerName" que especifica o nome do domínio ou endereço IP que essa solicitação deve tratar.

Você pode fazer o Virtual Host resolver mais de um nome usando o parâmetro "ServerAlias". Isso fornece caminhos alternativos para o mesmo conteúdo como origem. Um bom exemplo para isso é adicionar o mesmo domínio precedido por "www".

A opção "DocumentRoot" especifica onde ficará o conteudo que é solicitado para esse Virtual Host. Por padrão ele é configurado dentro do diretório "/var/www" no Ubuntu e Debian.


Definições do Diretório

O Virtual Host tem definições para como a forma ele processa diretórios diferentes dentro do sistema. A primeira definição de diretório aplica regras para o diretório "/" ou raiz. Por padrão o Ubuntu não configura nenhuma restrição de acesso ao seu sistema de arquivos. O Apache recomenda que você adicione algumas restrições de acesso padrão. Você pode realizar essa alteração realizando a configuração abaixo:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order Deny,Allow
    Deny from All
</Directory>


Isso ira impedir o acesso a todo conteúdo, a menos que especificado de outra forma nas definições de diretório subsequentes.

A opção "AllowOverride" é usada para decidir se um arquivo ".htaccess" pode substituir as configurações se ele for colocado no diretório de conteúdo. Isso não é permitido por padrão, mas pode ser útil para habilitar em uma variedade de circunstanciais.


Conclusão

Passamos por alguns arquivos básicos de configuração do Apache. Ele é um servidor versátil e modular, então nem sempre a necessidade de um ambiente é a mesma do outro fazendo com que você sempre customize seu ambiente.
Se você precisar saber um pouco mais sobre o apache você pode consultar a Ducumentação Oficial do Apache.
Esperamos que esse artigo tenha lhe ajudado a entender um pouco mais sobre esse poderoso Servidor WEB.

Para duvidas, elogios, parceiras e reclamações por favor enviar um email para contatos@middlewarebrasil.com

Sigam o Middleware Brasil nas redes sociais.
Facebook-Middleware_Brasil
Twitter-Middleware_Brasil
Meetup-Middleware_Brasil
Youtube-Middleware_Brasil

Até mais! 

Comentários

  1. Ótimo Post, bem explicativo!

    ResponderExcluir
  2. Ótimo artigo. Consultivo para iniciantes e avançados.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Instalação Linux Debian usando Virtual Box