|
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.
|
|
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.
|
|
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:
- Diretivas que controlam a operação do processo servidor Apache como um todo, define o global environment (Ambiente Global)
- 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
- 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>
|
|
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. |
|