3.2. Configuração do servidor HTTP

3.2.1. O que é HTTP ?
3.2.2. Instalação do Servidor HTTP
3.2.3. Arquivos de configuração
3.2.4. Ferramentas e utilitários
Apache Web Server

3.2.1. O que é HTTP ?

A sigla HTTP significa HyperText Transfer Protocol. O servidor HTTP é um software que utiliza o protocolo TCP/IP para estabelecer uma conexão com um cliente (geralmente em um browser tipo Netscape). O servidor examina a requisição HTTP e responde ao cliente um documento HTML (Hypertext Markup Language), que pode conter uma figura, som, VRML ou outras linguagens como Java.

O desenvolvimento da Web ao longo destes últimos anos trouxe muitas ferramentas e linguagens voltadas para o ambiente Web tais como o padrão CGI (Common Gateway Interface), linguagens dinâmicas como PHP e ASP, desenvolvimento multimídia com a linguagem Flash e a utilização da linguagem Java, trazendo com isso uma evolução constante do servidor HTTP e da linguagem HTML.

3.2.2. Instalação do Servidor HTTP

O servidor HTTP padrão do Linux é o Apache Web Server, disponível nas distribuições do Linux. É atualmente o servidor HTTP mais utilizado na Internet pela pesquisa da Netcraft.

A distribuição SuSE Linux disponibiliza o pacote apache, da série n, versão 1.3.12. O modo mais fácil de instalar o Apache é através da ferramenta YaST. O programa executável do Apache é o /usr/sbin/httpd.

Utilize o script rcapache para:

Iniciar o Apache: # rcapache start
Parar o Apache: # rcapache stop
Recarga do Apache(sem parar o serviço): # rcapache reload

Para melhorar o desempenho e controlar o acesso a documentos e sites HTML utiliza-se um programa proxy. No Linux, o proxy padrão é o SQUID.

3.2.3. Arquivos de configuração

O httpd pode ser disparado em modo standalone ou inetd. No modo standalone são disparados processos httpd que aguardam uma conexão nos portos definidos. No modo inetd, o httpd só será disparado caso a conexão seja requisitada por um cliente.

No SuSE Linux para que o Apache seja disparado automaticamente coloque START_HTTP=yes no arquivo /etc/rc.config.

O arquivo de configuração do SQUID é o /etc/squid.conf. O squid mantém o cache das páginas em um diretório, normalmente /var/squid/cache. Ele pode ser inicializado através do comando: squid -z.

A configuração do Apache é feita através do arquivo /etc/httpd/httpd.conf. As diretivas de configuração são agrupadas em 3 seções:

  1. Diretivas que controlam a operação do processo servidor Apache como um todo, define o global environment (Ambiente Global)
  2. Diretivas que definem os parâmetros do servidor "principal" ou "default", que respondem a requisições que não foram tratadas por um virtual host. Estas diretivas também possuem valores default para configurações de todos os virtual hosts
  3. Configurações para virtual hosts que permitem requisições Web serem enviadas para endereços IP ou hostnames diferentes.
Seção 1: Global Environment

ServerType Define o tipo de execução do servidor httpd, pode ser pelo processo inetd ou standalone (processo httpd rodando em background).
ServerRoot Define o diretório abaixo do qual serão armazenados os arquivos de configuração do servidor, erro e log. Exemplo: "/home/www". Lembre-se de não colocar a barra no final do path.
Timeout Número de segundos de espera antes receber ou enviar um timeout.
KeepAlive Define conexões persistentes (mais de uma requisição por conexão). É recomendável habilitar (On) para uma melhor performance do servidor.
MaxKeepAliveRequests Define o número máximo de requisições permitas durante um conexão persistente. É recomendável um número maior para obter performance máxima. Se este número for 0, a quantidade será ilimitada.
KeepAliveTimeout Número de segundos de espera para próxima requisição de um mesmo cliente em uma mesma conexão.
StartServers Número de instâncias de servidores httpd que serão iniciadas inicialmente. O default é 1.
MaxClients Limita o número total de servidores rodando, ou seja, limita o número de clientes que podem conectar simultaneamente. Este número não pode ser muito pequeno, porque se o limite de clientes conectados for atingido, os demais clientes que tentarem conectar ficarão bloqueados.
Listen Permite você associar o Apache à um IP específico e/ou portas, além do default. Exemplo: Listen 220.150.201.13:80.
BindAddress Você pode suportar virtual hosts com esta opção. Esta diretiva é usada para dizer ao servidor qual IP ele irá escutar (listen). Pode conter um "*", um IP, ou um nome completo na Internet. Veja também as diretivas <VirtualHost> e Listen.


Seção 2: Configuração do servidor "Main" (Principal)

Todas as diretivas desta seção podem aparecer dentro das definições do VitualHost, neste caso as diretivas definidas serão substituídas pelas diretivas do virtual host.

Port Define o número da porta que o servidor standalone escuta (listen). Exemplo: Port 80. Para portas menores que 1023, é preciso que o httpd seja executado como root inicialmente.
User/Group Se você deseja que o httpd execute como um usuário ou grupo diferente.
Exemplo: User wwwrun
                Group nogroup
ServerAdmin Define o endereço de e-mail que o servidor httpd envia quando houver erros. Este endereço aparece em algumas páginas de erro que são geradas pelo servidor. Exemplo: root@seudominio.com.br.
ServerName Permite definir um nome que é enviado devolta para os clientes. Exemplo: ServerName www.seudominio.com.br.
DocumentRoot Define o diretório que você disponibilizará seus documentos www. Exemplo: DocumentRoot "/home/www/htdocs".
AccessFileName Define o nome do arquivo (normalmente .htaccess) que é procurado em cada diretório do seu site para prover um controle de acesso as páginas.
DirectoryIndex Define o nome do(s) arquivo(s) que é usado como um HTML pré-escrito para o index do diretório. Separe os nomes com espaço. Exemplo: DirectoryIndex index.html.
UseCanonicalName Se estiver On, sempre quando o Apache precisar construir uma URL de auto-referência, ele usará ServerName e Port para formar o nome "canonical". Se estiver Off, o Apache usará o hostname:port que o cliente fornece. Esta diretiva também afeta SERVER_NAME e SERVER_PORT em scripts CGI.
HostnameLookups Define se o Apache irá escrever no log o nome dos clientes ou o seu IP, por exemplo: www.linuxsupport.com.br (On) ou 200.220.30.146 (Off). O default é Off, porque terá menos tráfego na rede. Se estiver em On, significa que cada requisição do cliente resultará um pelo menos uma consulta ao DNS.
ErrorLog Define a localização do arquivo de log de erros. Se você não especificar a diretiva ErrorLog no conteúdo do <VirtualHost>, as mensagens de erro relacionadas com aquele virtual host serão logadas aqui. Exemplo: ErrorLog /var/log/httpd.error_log
LogLevel Controla o número de mensagens logadas no arquivo error_log. Valores possíveis: debug, info, notice, warn, error, crit, alert, emerg.
CustomLog Define a localização e o formato do arquivo de log de acessos. Se você não especificar a diretiva CustomLog no conteúdo do <VirtualHost>, as mensagens de acesso relacionadas com aquele virtual host serão logadas aqui.
Aliases Você pode criar quantos apelidos quiser para diretórios.
Exemplo: Alias /icons/ "/home/www/icons/"
                Alias /doc/ "/usr/doc/"
                Alias /sdb/ "/usr/doc/sdb/"
ScriptAlias Esta diretiva define em qual diretório contém os scripts do servidor.
Exemplo: ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"


Seção 3: Virtual Hosts

NameVirtualHost Se você deseja usar virtual hosts baseados em nome, você precisa definir pelo menos um IP (e número da porta) para eles.
Exemplo: NameVirtualHost 200.220.30.146
<VirtualHost> Dentro desta diretiva você define os diversos virtual hosts que seu servidor HTTP irá responder. Por exemplo um servidor HTTP que responde requisições das URL's www.starix.com.br e www.linuxsupport.com.br teria a seguinte configuração:
  <VirtualHost www.starix.com.br>
     DocumentRoot    /home/www/starix/
     ErrorLog        logs/starix-errors.log
     CustomLog       logs/starix-access.log common
     ServerName      www.starix.com.br
  </VirtualHost>

  <VirtualHost www.linuxsupport.com.br>
     DocumentRoot    /home/www/linuxsupport/
     ErrorLog        logs/linuxsupport-errors.log
     CustomLog       logs/linuxsupport-access.log common
     ServerName      www.linuxsupport.com.br
  </VirtualHost>


3.2.4. Ferramentas e utilitários
Para diagnosticar problemas no Apache não existe programas específicos, a maneira mais comum é utilizar um browser (na máquina cliente) para verificar se o servidor Apache está respondendo as requisições HTTP. Outros programas são disponíveis no ambiente Linux, tais como:

lynx Este programa é um browser em modo texto, muito utilizado no ambiente Linux.
Netscape É um browser gráfico, que é gratuito e disponível nas distribuições do Linux.
htdig Este é um pacote que inclui os utilitários: htdig, htmerge, htfuzzy e htsearch. O utilitário htdig cria uma base de dados indexada do conteúdo de um site, para ser utilizado pelo CGI de pesquisa htsearh.
htpasswd Este utilitário é utilizado para criar ou atualizar um arquivo usado para armazenar nome de usuário e senhas para uma autênticação de usuários HTTP. As senhas podem ser criptografadas e armazenadas tanto com MD5 quanto a rotina crypt().
htmlclean Este programa remove espaços em branco, comentários e estruturas desnecessárias ou redundantes de uma página HTML. É utilizado para reduzir o tamanho do aquivo HTML.
weblint Este programa verifica os erros de sintaxe da linguagem HTML de uma página HTML.


Copyright © 2001-2007 HMarx - webmaster@linuxsupport.com.br