O que é o Apache HTTP Server
O Apache HTTP Server é um servidor web mantido pela Apache Software Foundation. Ele atende requisições HTTP, serve arquivos estáticos, executa aplicações e atende hosts virtuais no mesmo processo.
O servidor é conhecido pela quantidade de módulos disponíveis. Cada recurso além do básico vem de um módulo, e o conjunto carregado define o comportamento do serviço.
Módulos e o modelo de processos
O módulo de multiprocessamento, chamado MPM, define como o Apache usa os processos e as threads. As variantes atendem cenários diferentes: uma privilegia compatibilidade com bibliotecas antigas, outra usa threads e uma terceira trabalha orientada a eventos.
A escolha do MPM muda o desempenho sob carga e a forma de executar o PHP. Com o módulo do PHP, o interpretador roda dentro do servidor. Com mod_proxy_fcgi, a requisição é encaminhada a processos PHP separados, como acontece no nginx.
Hosts virtuais e arquivos .htaccess
Um host virtual reúne domínio, porta e diretório do site. Vários hosts podem compartilhar a mesma instalação, e cada um tem diretivas próprias de acesso, redirecionamento e certificado.
O arquivo .htaccess permite aplicar instruções dentro de um diretório do site, quando a leitura está habilitada. Ele é útil em hospedagem compartilhada e tem custo: o servidor consulta o arquivo a cada requisição. O WordPress e outros sistemas usam esse recurso para reescrever endereços.
Como conferir a configuração
apachectl configtest valida a sintaxe, apachectl -M lista os módulos carregados e httpd -v informa a versão. A leitura do arquivo principal e dos arquivos incluídos mostra qual diretiva está ativa em cada host.
Depois de uma mudança, uma recarga suave aplica a configuração sem encerrar as conexões em andamento. Em ambiente com container, a imagem precisa carregar o arquivo revisado, e não só o projeto da aplicação.
O caminho de publicação e o deploy precisam registrar qual arquivo foi aplicado em cada host. A separação entre o servidor e a aplicação mantém cada camada recusando o que não deveria chegar à outra, e a segurança do conjunto depende disso.
Para revisar hosts virtuais, módulos e o encaminhamento até o PHP, o Desenvolvimento Colaborativo da Dev Side Studio permite conferir a configuração durante a sessão.
Dúvidas frequentes
Perguntas frequentes sobre Apache HTTP Server
- Apache e nginx fazem a mesma coisa?
- Os dois atendem requisições HTTP e podem trabalhar juntos. O Apache carrega módulos que executam dentro do próprio servidor, e o nginx trabalha com eventos e processos separados. A escolha depende do que a aplicação espera encontrar.
- O que é um arquivo .htaccess?
- É um arquivo de configuração que o Apache lê dentro de um diretório do site, quando a leitura está permitida. Ele permite reescrever endereços e aplicar instruções sem editar o arquivo principal, e cada leitura custa processamento.
- Por que a configuração não aplicou a mudança?
- O arquivo pode estar num diretório que o Apache não lê, ou a diretiva depende de um módulo ausente. `apachectl configtest` aponta o erro de sintaxe antes de qualquer recarga.
- O PHP roda dentro do Apache?
- Pode rodar como módulo do próprio servidor ou em processos separados, entregues por FastCGI. O caminho escolhido muda o isolamento entre sites e a forma de atualizar o interpretador.
Para continuar
Recursos relacionados
Documentação
Apache HTTP Server 2.4: documentação
Reúne a referência de módulos, diretivas, hosts virtuais e segurança do servidor.
Abrir recursoDocumentação
Apache HTTP Server: arquivos .htaccess
Explica quando o arquivo é lido, o que ele pode conter e o custo de mantê-lo ativo.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, o Apache aparece como servidor que carrega módulos, define hosts virtuais e depende de arquivo de configuração revisado.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.