Como configurar o servidor web Apache num Ubuntu ou Debian VPS

o que é o Apache?

Apache é o servidor web mais popular na internet. É usado para servir mais da metade de todos os sites ativos.

embora existam muitos servidores web viáveis que irão servir o seu conteúdo, é útil compreender como o Apache funciona devido à sua ubiquidade.

neste artigo, vamos examinar alguns arquivos de configuração geral e opções que podem ser controladas dentro deles., Este artigo seguirá o layout Ubuntu / Debian dos arquivos Apache, que é diferente de como outras distribuições constroem a hierarquia de configuração.

Como Instalar o Apache no Ubuntu e Debian

Se você já não tem o Apache instalado, você pode fazer isso agora, emitindo os seguintes comandos:

sudo apt-get updatesudo apt-get install apache2

Isto é tudo o que é necessário para ter um servidor web., Se você visitar seu VPS endereço IP em um navegador da web, você receberá o padrão do Apache página de índice:

your_domain_name_or_ip_address
It works!This is the default web page for this server.The web server software is running but no content has been added, yet.

O Apache Hierarquia de arquivos no Ubuntu e Debian

No Ubuntu e Debian, Apache mantém seus principais arquivos de configuração dentro do “/etc/apache2” pasta:

cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

Há uma série de arquivos de texto sem formatação e sub-diretórios no diretório. Estes são alguns dos locais mais úteis para estar familiarizado com:

  • apache2.,conf: este é o ficheiro de configuração principal do servidor. Quase toda a configuração pode ser feita a partir deste arquivo, embora seja recomendado usar arquivos separados, designados para a simplicidade. Este ficheiro irá configurar as predefinições e será o ponto central de Acesso para o servidor ler os detalhes da configuração.portos.conf: este ficheiro é usado para indicar as portas onde as máquinas virtuais devem ouvir. Certifique-se de verificar se este ficheiro está correcto se está a configurar o SSL.conf.d/: Este diretório é usado para controlar aspectos específicos da configuração Apache., Por exemplo, é muitas vezes usado para definir a configuração SSL e opções de segurança padrão.
  • sites-disponível/: este diretório contém todos os arquivos host virtuais que definem diferentes sites. Estes estabelecerão que conteúdo é servido para que Pedidos. Estas são configurações disponíveis, Não configurações ativas.
  • sites-actived/: this directory establishs which virtual host definitions are actually being used. Normalmente, este diretório consiste de links simbólicos para arquivos definidos no diretório “sites-available”.,
  • mods -/: estas pastas são semelhantes em função das pastas de sites, mas definem módulos que podem ser carregados opcionalmente em vez disso.

Como você pode ver, a configuração do Apache não ocorre em um único arquivo monolítico, mas em vez disso acontece através de um projeto modular onde novos arquivos podem ser adicionados e modificados conforme necessário.

olhando para o Apache2.conf File

os detalhes de configuração principais para o seu servidor Apache estão guardados no “/etc/apache2/apache2.ficheiro conf”.,

este ficheiro está dividido em três secções principais: configuração para o processo global do servidor Apache, configuração para o servidor por omissão e configuração das máquinas virtuais.

no Ubuntu e Debian, a maioria do arquivo é para Definições globais, e a configuração do servidor padrão e hosts virtuais é tratada no final, usando o “Include”…” Directiva.

a diretiva “incluir” permite ao Apache ler outros arquivos de configuração para o arquivo atual no local onde a declaração aparece., O resultado é que o Apache gera dinamicamente um arquivo de configuração overarching no arranque.

Se você deslocar para o fundo do arquivo, Há um número de diferentes declarações “incluir”. Estas definições de Módulo de carga, as portas.documento conf, os arquivos de configuração específicos no ” conf.d / ” directory, and finally, the Virtual Host definitions in the “sites-enable/” directory.

vamos nos concentrar na primeira parte do arquivo para aprender como o Apache define suas configurações globais.,

secção de configuração Global

Esta secção é usada para configurar algumas opções que controlam como o Apache funciona como um todo.

Existem algumas opções interessantes que você pode querer modificar a esta secção:

Timeout

Por padrão, esse parâmetro é definido como “300”, o que significa que o servidor tem um máximo de 300 segundos para cumprir cada pedido.

Este é provavelmente muito alto para a maioria das configurações e pode ser deixado cair com segurança para algo entre 30 e 60 segundos.,

KeepAlive

Esta opção, se definida como “On”, permitirá que cada conexão permaneça aberta para lidar com vários pedidos do mesmo cliente.

Se isto estiver configurado para “Off”, cada pedido terá que estabelecer uma nova conexão, o que pode resultar em sobrecarga significativa, dependendo da sua configuração e situação de tráfego.

Maxkepaliverequests

isto controla quantos pedidos separados cada ligação irá tratar antes de morrer. Manter este número elevado permitirá ao Apache servir o conteúdo a cada cliente de forma mais eficaz.,

definir este valor para 0 permitirá ao Apache servir uma quantidade ilimitada de pedidos para cada ligação.

KeepAliveTimeout

Esta opção especifica quanto tempo esperar pelo próximo pedido após terminar o último. Se o limite de tempo-limite for atingido, então a conexão morrerá.

isto apenas significa que da próxima vez que o conteúdo for solicitado, o servidor irá estabelecer uma nova conexão para lidar com a solicitação do conteúdo que compõem a página que o cliente está visitando.,

configuração MPM

a secção seguinte especifica a configuração das opções MPM (módulo multi-processamento). Você pode cruzar referências com a secção com a qual a sua instalação Apache foi compilada, saindo para o terminal e escrevendo:

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

como você pode ver, neste servidor, “prefork.c é um módulo que foi compilado e também está no apache2.ficheiro conf”. Sua instalação pode ter vários para escolher, mas apenas um pode ser selecionado.

pode ajustar a configuração do MPM prefork na secção apropriada.,

explorando o arquivo de Host virtual por omissão

a declaração de Host Virtual por omissão pode ser encontrada em um arquivo chamado “default” no diretório “sites-available”.

Podemos aprender sobre o formato geral de um arquivo Host Virtual examinando este arquivo. Abre o ficheiro com o seguinte comando:

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

a máquina Virtual por omissão está configurada para lidar com qualquer pedido no porto 80, o porto http padrão. Isto é definido no cabeçalho da declaração onde diz”*: 80″, significando porta 80 em qualquer interface.,

isto não significa que ele irá necessariamente lidar com cada pedido para o servidor nesta porta no entanto. O Apache usa a definição de Host Virtual mais específica que corresponde ao pedido. Isto significa que, se houvesse uma definição mais específica, poderia substituir essa definição.

configuração do nível superior da máquina Virtual

estas opções estão definidas dentro da definição da máquina Virtual fora de qualquer outra subdeclaração de nível inferior. Aplicam-se a todo o Host Virtual.

a opção “ServerAdmin” especifica um e-mail de contato que deve ser usado quando existem problemas no servidor.,

isto pode ser inserido numa página de erro se tiver “ServerSignature” configurada para “Email” no “/etc/apache2/conf.d / security” file, então certifique-se de que você está disposto a receber o e-mail se você ajustar essa configuração.

se estivéssemos a usar isto como um modelo para outras definições de Host Virtual, gostaríamos de adicionar uma definição de ServerName que especifica o nome de domínio ou endereço IP que este pedido deve lidar. Esta é a opção que adicionaria especificidade à máquina Virtual, permitindo-lhe sobrepor a definição padrão se corresponder ao valor ServerName.,

Você também pode fazer com que a máquina Virtual se aplique a mais de um nome usando a definição de “Serverálias”. Isso fornece caminhos alternativos para chegar ao mesmo conteúdo. Um bom caso de uso para isso é adicionar o mesmo domínio, precedido por”www”.

a opção “DocumentRoot” especifica onde o conteúdo que é pedido para esta máquina Virtual será localizado. A máquina Virtual padrão é configurada para servir conteúdo fora do diretório “/var/www” no Ubuntu.,

definições de diretório

dentro da definição de Host virtual, existem definições para como o servidor lida com diferentes diretórios dentro do sistema de arquivos. O Apache irá aplicar todas essas direções em ordem de menor para maior, então há novamente uma chance de sobrepor as opções anteriores.

a primeira definição de diretório aplica regras para o diretório”/”, ou root,. Isto irá fornecer a configuração de base para a sua máquina Virtual, uma vez que se aplica a todos os arquivos servidos no sistema de arquivos.

Por padrão, Ubuntu não configura quaisquer restrições de acesso ao sistema de arquivos., O Apache recomenda que adicione algumas restrições de acesso predefinidas. Você pode modificar isto assim:

<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>

Isto irá negar o acesso a todo o conteúdo, salvo indicação em contrário nas definições de directórios subsequentes.

A definição da pasta seguinte é para a raiz do documento, por isso indica a opção “Permitir de todos” que se sobrepõe à opção “/” para esta pasta.

a opção” AllowOverride “é usada para decidir se um”.o arquivo htaccess ” pode sobrepor as configurações se for colocado no diretório de conteúdo., Isto não é permitido por padrão, mas pode ser útil para permitir em uma variedade de circunstâncias.

também conhecido por “ScriptAlias”, as definições de Directórios são por vezes precedidas por “Alias” ou “ScriptAlias”. O ‘Alias’ mapeia uma localização de url para uma localização de directório.

ScriptAlias opera da mesma forma, mas é usado para definir diretórios que terão componentes executáveis neles.

Alias /content/ /path/to/content/

seguindo a alcunha, deverá lembrar-se de definir a pasta com privilégios de acesso, tal como discutido na secção anterior.,

activar os Sites e módulos no Apache

Uma vez que tenha um ficheiro de máquina Virtual que satisfaça os seus requisitos, pode usar as ferramentas incluídas no Apache para os transferir para os sítios ao vivo.,

Para criar automaticamente um link simbólico em “sites-enabled” diretório para um arquivo existente na pasta “sites-available” directory, emita o seguinte comando:

sudo a2ensite virtual_host_file_name

Após a activação de um site, emita o seguinte comando para dizer ao Apache para re-ler os arquivos de configuração, permitindo a alteração propagar:

sudo service apache2 reload

Há também um companheiro de comando para desabilitar um Host Virtual., Ele funciona ao remover o link simbólico a partir do “sites-enabled” diretório:

sudo a2dissite virtual_host_file_name

Novamente, recarregue a configuração para fazer a mudança acontecer:

sudo service apache2 reload

os Módulos podem ser habilitados ou desabilitados usando o “a2enmod” e “a2dismod” comandos respectivamente. Eles trabalham da mesma forma que as versões “site” destes comandos.

lembre-se de recarregar as suas alterações de configuração depois de os módulos terem sido activados ou desactivados também.

Conclusion

we have gone over some basic Apache configuration files., O Apache é versátil e muito modular, por isso as necessidades de configuração serão diferentes, dependendo da sua configuração.

Você deve ter uma boa compreensão do que os arquivos de configuração principais são usados e como eles interagem uns com os outros. Se você precisa saber sobre opções de configuração específicas, os arquivos fornecidos estão bem comentados e o Apache fornece documentação excelente.

esperançosamente, os arquivos de configuração não serão tão intimidantes agora, e você se sente mais confortável experimentando e modificando de acordo com suas necessidades.por Justin Ellingwood

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *