sábado, 20 de agosto de 2011

Apache: mod_cband e mod_speling ( Limitar uso de banda e requisições simultâneas no APACHE)

O mod_cband permite limitar o uso de banda ou o número de requisições simultâneas atendidas pelos sites hospedados no Apache. Como você pode imaginar, ele é extremamente popular em serviços de shared hosting, já que permite limitar o volume de banda utilizado por cada site (ou por cada usuário que acessa o servidor) e estabelecer quotas de tráfego.
Nas distribuições derivadas do Debian, ele pode ser instalado através do pacote "libapache2-mod-cband", como em:
# apt-get install libapache2-mod-cband
Com o módulo instalado, use o comando a2enmod para ativá-lo:
# a2enmod cband
Falta agora apenas editar a configuração de cada virtual host, definindo os limites desejados, como em:

<VirtualHost *:80>
ServerAdmin joao@joao.com.br
ServerName www.joao.com.br
ServerAlias joao.com.br
DocumentRoot /var/www/joao
CBandSpeed 1024kbps 10 20
CBandRemoteSpeed 512kbps 5 3
</VirtualHost>
A opção "CBandSpeed" determina os limites para o tráfego total do site, especificando o volume máximo de banda que pode ser usado, o número máximo de requisições de páginas e/ou arquivos por segundo e o número máximo de instâncias do Apache que podem ser utilizadas. No exemplo, limitei o tráfego do site a 1024 kbps, com um máximo de 10 requisições por segundo e um máximo de 20 conexões simultâneas.
Em seguida, temos a opção "CBandremoteSpeed", que permite definir limites individuais para os visitantes, impedindo que um único usuário monopolize toda a banda disponível (pense no caso de um site que disponibiliza arquivos para download, por exemplo). No exemplo, cada usuário ficará limitado a um máximo de 256 kbps, com até 3 requisições por segundo e um máximo de três conexões simultâneas.
Como acabamos de ativar o módulo, é necessário reiniciar o Apache para que as alterações entrem em vigor, mas, quando você for apenas alterar os limites posteriormente, pode usar o "reload" para atualizar a configuração sem derrubar o servidor.
# /etc/init.d/apache2 force-reload
A partir daí, você pode verificar a aplicação dos limites simplesmente baixando um arquivo disponível no site. A taxa de transferência vai variar ao longo do download, ficando um pouco acima ou um pouco abaixo do estabelecido, mas na média a transferência não ultrapassa a quota estabelecida.
O speling é outro módulo útil e bastante usado. Ele tem a função de corrigir erros simples nos links digitados pelos usuários, encaminhando-os para a página com o nome mais similar, em vez de mostrar um erro 404. Com isso, um visitante que tentar acessar por engano a "http://www.gdhpress.com.br/curso", por exemplo, será enviado para a "http://www.gdhpress.com.br/cursos", que é a página com nome mais próximo e possivelmente a que ele desejava acessar.
Além de evitar a perda de algumas visitas, a correção automática das URLs ajuda a reduzir o volume de erros de indexação nos mecanismos de busca, causados por links externos apontando para páginas do site que não existem. Como o conteúdo do site não é duplicado (os visitantes são apenas redirecionados para a página correta, automaticamente), não existe nenhuma contra-indicação no uso do módulo, com exceção de um pequeno aumento na carga de processamento do servidor, proporcional ao volume de correções que ele precisar realizar.
Em praticamente todas as distribuições, o mod-speling é incluído diretamente no pacote principal do Apache, de forma que você precisa apenas ativá-lo.
Nas distribuições derivadas do Debian, use o a2enmod, como em:

# a2enmod speling
# /etc/init.d/apache2 force-reload
Nas derivadas do Red Hat, crie o arquivo "/etc/httpd/conf.d/speling.conf", contendo a linha:
LoadModule speling_module modules/mod_speling.so
E em seguida reinicie o serviço:
# service httpd restart
Caso, ao reiniciar o Apache, você receber um erro como "[warn] module speling_module is already loaded, skipping", significa que o módulo já está ativo por padrão. Nesse caso, você pode remover o arquivo, pois ele não é necessário.
Com o módulo ativo, você precisa apenas ativar o uso do speling, incluindo a linha "CheckSpelling on" dentro da configuração do site, como em:
 
<VirtualHost *:80>
ServerAdmin admin@gdhpress.com.br
ServerName www.gdhpress.com.br
DocumentRoot /var/www/gdhpress
CheckSpelling on
</VirtualHost>
Se preferir que o módulo seja usado automaticamente para todos os sites hospedados, inclua a linha diretamente no arquivo de configuração principal do Apache.
Em um ambiente de desenvolvimento web, assim como qualquer outro é necessário a utilização de um sistema para projeção, contrução e depuração confiavel do software aplicativo que simule a realidade no qual seu software irá executar.
Tal simulação pode ser obtida com extrema perfeição, recriando o próprio ambiente servidor web com todas as necessidades exigidas pelo desenvolvedor com o sistema operacional Linux, bastando apenas configura-lo previamente para executar tal função.
As configurações demonstradas nesta postagem recriam um cenário de desenvolvimento real para o programador, que pode ser utilizado também por implantadores de sistemas para configuração de servidores web para a rede, seja ela uma intranet ou a própria internet. Nesta postagem iremos utilizar o webmin e o virtualmin como gerenciador, para criar executar e configurar os domínios virtuais disponiveis para o ambiente de desenvolvimento ou um servidor web real.

Compatibilidade de Sistema Operacional

As configurações aqui propostas foram testadas e configuradas no sistemas operacional Linux nas seguintes distribuições:
  • GNU Debian
  • Ubuntu
  • Fedora
  • CentOS
É possivel que em outras distribuições seja necessário algumas adaptações para implementação e uso, talves sendo necessário até que recompilação de pacotes para rodá-lo com o Virtualmin, como no caso do “suexec-custom” que é uma exigência do software Virtualmin para gerenciar os domínios como usuários a partir do diretório “/home”

Instalando Aplicações e Dependências

Com os repositório devidamente configurados e ativos basta apenas entrar com os comandos abaixo para instalar os aplicativos de depêndencia.
“Devo alertar que a configuração e ativação de repositórios no Linux e suas distribuições estão fora
do escopo desta postagem.”
# Gnu Debian
  apt-get install apt-show-versions libnet-ssleay-perl libio-pty-perl libauthen-pam-perl  libapt-pkg-perl

# Fedora
  yum -i libnet-ssleay-perl libio-pty-perl libauthen-pam-perl
 

 
 
# Debian
  apt-get install mysql-server proftpd apache2 apache2-suexec-custom bind9 openssh-server openssl php5 php5-dbg php5-curl php5-gd php5-cgi php5-cli php5-mcrypt php5-imagick php5-mysql php5-xdebug php-mail php5-dbg php5-recode phpmyadmin postfix webalizer subversion

# Fedora
  yum -i mysql-server proftpd apache2 apache2-suexec-custom bind9 openssh-server openssl php5 php5-dbg php5-curl php5-gd php5-cgi php5-cli php5-mcrypt php5-imagick php5-mysql php5-xdebug php-mail php5-dbg php5-recode phpmyadmin postfix webalizer subversion

Webmin e Virtualmin

Faça o download do webmin e dos plugins necessários para utiliza-lo como gerenciador do seu servidor nas versões correspondente ao da sua distribuição.
A demonstração abaixo o versionamento do arquivo no link foi substituida pela caracter “x”, bastando você verificar a versão mais atual e efetual o download.
[webmin]
Em http://www.webmin.com/download.html faça o download:
1
wget http://prdownloads.sourceforge.net/webadmin/webmin_x.xxx_all.deb
[Virtualmin]
Em http://www.webmin.com/vdownload.html faça o download:
1
wget http://download.webmin.com/download/virtualmin/virtual-server-x.xx.gpl.wbm.gz
1
wget http://download.webmin.com/download/virtualmin/virtual-server-theme-x.x.wbt.gz

Passo: 1

Instale o arquivo do webmin do download efetuado.
1    
2
3
4
5
# Debian
dpkg -i webmin_x.xxx_all.deb

#Fedora
rpm -ivh webmin_x.xxx_all.rpm

Passo: 2

Acesse o endereço especificado após a instalação do webmin na linha de comando https://localhost:10000 e entre como usuário “root”

Passo: 3

Instale os plugin que você efetuou o download da página do webmin no menu lateral esquerdo:
Webmin -> Webmin configuration -> Webmin Modules


e em seguida selecione o arquivo do plugin do virtualmin para instalação.

Passo: 4

Agora Instale o thema do Virtualmin indo até:
Webmin -> Webmin configuration -> Webmin Themes

Na Aba “Install Themes” selecione o arquivo do thema que foi baixado no download.

Passo: 5

Agora basta configurar o thema indo em “Change Language and Theme” -> “Webmin UI Theme” e selecionar o tema do Virtualmin (Virtualmin Framed Theme).

Configurando os Servidores

Após os passos acima você deve partir para a configuração dos servidores Web com PHP, E-mail, SSH, FTP, DNS, Webalizer e outros detalhes que serão explicados logo abaixo.

Apache Webserver

Vá ao menu “Servers -> Apache Webserver -> Configure Apache Modules” e habilite os seguintes modulos:
  • actions
  • alias
  • auth_basic
  • auth_file
  • authz_default
  • authz_groupfile
  • authz_host
  • authz_user
  • autoindex
  • cgi
  • deflate
  • dir
  • env
  • mime
  • negotiation
  • php5
  • python
  • reqtimeout
  • rewrite
  • setenvif
  • status
  • suexec

Logo Após click no botão “Enable Selected Modules” para abilitar o módulos selecionados.
Agora edite o arquivo /etc/apache2/suexec/www-data e altere a primeira linha para string abaixo e salve o arquivo:
1
/home

Postfix

Vá ao menu “Servers -> Postfix Mail Server ->Virtual Domais -> Domain Mapping Lookup Tables” e selecione “Map Specifications” e insira no campo a string abaixo e click em “save and Apply”:
1
hash:/etc/postfix/virtual

MySQL Server

Vá ao menu “Servers -> MySQL Database Server” e insira o usuario “root” e sua senha no qual você configurou na instalação do MySQL.

ProFTPD

No arquivo de configurações em “/etc/proftpd/proftpd.conf” descomente a linha que contenha a propriedade “DefaultRoot” como no exemplo abaixo:
1
2
# Use this to jail all users in their homes
DefaultRoot         ~

Configuração de Rede

Para o funcionamento correto do servidor será necessário efetuar algumas alterações na rede da máquina que hospedará os domínios virtuais.
No arquivo /etc/resolv.conf insira a linha abaixo:
1
nameserver 127.0.0.1
Caso exista outra configuração no arquivo citado, coloque a linha acima em primeiro plano ou seja antes de qualquer configuração existente.
Mais detalhes sobre configurações de rede pode ser encontrado aqui.

Detalhes Finais

Após os servidores serem devidamente configurados, vá ao menu lateral e click em “Refresh Modules” e logo após click em “System Information” para carregar a página “HOME” do Virtuamin. O webmin versão mais recente após configurado pergunta por algumas informações extras que pode ser respondido sem nenhum problema bastando apenas clicar no botão “Next” para avançar as configurações.

Na página Home click em “Re-check and Refresh Configuration” para o webmin checar se está tudo ok para rodar o sistema com todo o seu poder de gerenciamento.

Agora você pode gerar domínios virtuais para utilização no desenvolvimento de sites podendo acessar de qualquer browser instalado em seu sistema operacional. Vá ao menu lateral na parte superior e click em “Virtualmin -> Create Virtual Server”:

Autenticação e Controle de Acesso no Apache

O servidor web apache fornece a possibilidade de efetuar autenticação e controle de acesso ao conteúdo disponibilizado pelo teu site ou sistema web, tal recurso é aplicado pelo módulo “mod_auth” e “mod_access”.
A configuração pode ser disparada por um arquivo “.htaccess” que verifica a autenticação do usuário por outro arquivo que é especificado na configuração. Os usuários são adicionados ao arquivo de configuração com o comando “htpasswd”.
1
htpasswd -c /home/dominio/public_html/security/.htpasswd user1
Argumentos válidos para o comando htpasswd:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 # htpasswd
Usage:
htpasswd [-cmdpsD] arquivo usuario
htpasswd -b[cmdpsD] arquivo usuario senha

htpasswd -n[mdps] usuario
htpasswd -nb[mdps] usuario senha

-c  Cria um novo arquivo.
-n  Não atualiza o arquivo, Mostra os resultados de saida stdout.
-m  Força encriptação MD5 para a senha.
-d  Força encriptação CRYPT para o arquivo de senha. (Padrão)
-p  Não encripta a senha (Texto pleno).
-s  Força encriptação SHA para a senha.
-b  Usa a senha na linha de comando ao invés de perguntar para o usuário.
-D  Remove um usuário específico.

No Windows, NetWare e sistemas TPF sinalizador '-m' é usado por padrão.
Em todos os outros sistemas, a flag '-p' provavelmente não funcionará.

 

Simulação

Nada melhor do que a prática para fixar o aprendizado. Suponha que queiramos protejer o diretório “libs” dentro do diretório “public_html”, podemos iniciar a configuração da seguinte maneira. Primeiro crie um arquivo “.htaccess” dentro de “/home/seu-usuario/public_html/libs”.
Se possuir acesso SSH basta entrar com o seguinte comando ou efetue o upload do arquivo já configurado por FTP.
1
touch /home/seu-usuario/public_html/libs/.htaccess
Acrescente o seguinte conteúdo para o arquivo criado, e não se esqueça de alterar a linha acima “[seu-usuário]” por um caminho válido.


2
3
4
5
6
# Controle de acesso ao diretório da pasta [/home/seu-usuario/public_html/libs]
AuthType Basic
AuthName "Zona Restrita"
AuthUserFile /home/meu-usuario/public_html/libs/.htpasswd
Require valid-user
Options FollowSymLinks Indexes

Ou por SSH linha de comando:


cat << EOF > /home/seu-usuario/public_html/libs/.htaccess
# Controle de acesso ao diretório da pasta [/home/seu-usuario/public_html/libs]
AuthType Basic
AuthName "Zona Restrita"
AuthUserFile /home/meu-usuario/public_html/libs/.htpasswd
Require valid-user
Options FollowSymLinks Indexes
EOF

A configuração acima diz ao apache para restringir o diretório atual, liberando acesso somente aos usuários válidos pelo arquivo especificado pela propriedade “AuthUserFile”, que no nosso caso é “/home/seu-usuario/public_html/libs/.htaccess”.
A propriedade “AuthType” pode receber dois parametros diferentes: (Mais detalhes AuthType)
1
AuthType Basic|Digest
A diretiva “Require valid-user”, que fala por sí só, requer um usuário válido, ou seja os usuários especificados no arquivo “.htpasswd”.
E por fim a diretiva “Options FollowSymLinks Indexes”, que no nosso caso fará com que o apache liste os arquivos e diretórios existentes na pasta restrita.
Agora basta criar o arquivo que irá conter os usuários ou usuário de acesso ao diretório restrito.
1
htpasswd -c /home/seu-usuário/public_html/libs/.htpasswd user1

Pronto, Agora basta ir ao seu navegador e digitar a sua URL, como abaixo:
Se tudo ocorreu bem a caixa de diálogo a seguir ira aparecer na tela requisitando o nome do usuário configurado e a senha para acessar o diretório especificado.

Insira o nome de usuário e senha para ter acesso ao conteúdo do diretório restrito.

Configurando CGI no Apache

Configurando CGI no Apache | Nação Livre






























Com a massa de usuários de internet cada vez maior, um site ou sistema web, seja ele um blog ou um site institucional, fica inviável a sua utilização sem qualquer conteúdo dinâmico. Com a necessidade batendo a porta as páginas dinâmicas cresceram e melhoraram muito nos últimos anos, sendo possível efetuar ações que antes eram exclusivas de softwares desktop.
Os recursos como o Ajax, linguagens do lado do servidor (Java, PHP, ASP, C#, Ruby e dentre outras), possibilitam a manipulação de informações, podendo-se trabalhar  dados específicos de forma dinâmica para os usuários. Um grande exemplo de tal recurso são os gerenciadores de conteúdos, como WordPress, Joomla, sistemas de  E-commerce etc.


CGI – Common Gateway Interface

O CGI é um recurso fantástico, que fornece um interface de
portabilidade entre linguagens diversas a fornecerem conteúdo para a web de
forma simples e transparente. Sua simplicidade torna o desenvolvimento mais
fácil, pois não existe a necessidade de aprender uma nova linguagens de
programação. É possivel até criar um programa em C++ , compila-lo e utilizar sua
saida para fornecer seus dados para a internet.
Como foco principal desta postagem vamos conhecer o CGI e
como implementa-lo no servidor Apache.


Habilitando o CGI

Primeiramente é necessário configurar um diretório para
servir de repositório para as aplicações que rodarão como cgi. Isto pode ser
efetuado, colocando a propriedade “ScriptAlias” dentro das configurações do seu
domínio web no arquivo de configuração do apache.
1 2 3 4 5 6 7 8 9 10 11
<VirtualHost *:80> ...

ServerName dominio-da-web.com.br

ScriptAlias /cgi-bin/ /home/dominio-da-web/cgi-bin/ <Directory
/home/dominio-da-web/cgi-bin>

allow from all


Options +ExecCGI

AddHandler cgi-script .cgi </Directory>
... </VirtualHost>
Uma observação importante é que você pode denominar
quantos “ScriptAlias” forem necessários , porem aconselho a criar um repositório
único para não ter problemas com gerenciamento.
A configuração acima diz ao servidor Apache que o
diretório “cgi-bin” dentro do diretório do usuário do domínio manipulado será o
repositório dos arquivos CGI, que serão acessados publicamente pela URL do
navegador como http://www.dominio-da-web.com.br/cgi-bin/arquivo.cgi.
Ainda no exemplo acima, é configurado a extensão a ser
aceita como CGI dentro da tag <Directory> com a propriedade “AddHandler
cgi-script” como “.cgi”. Nesta configuração foi apenas configurado a extensão
“.cgi” para exemplo, mas se necessário pode-se especificar extensões diferente
ou até mesmo mais de uma extensão, como .pl, .bin, .py, .sh etc.

Vejamos:
1 2 3 4 5 6 7 8 9 10
<VirtualHost *:80> ...

ScriptAlias /cgi-bin/ /home/dominio-da-web/cgi-bin/ <Directory
/home/dominio-da-web/cgi-bin>

allow from all

Options +ExecCGI


AddHandler cgi-script .pl .py
.bin .sh </Directory> ... </VirtualHost>

Podemos ainda utilizar um documento padrão para ser
especificado quando houver a requisição para um diretório CGI. A utilização
deste recurso não utiliza “ScriptAlias” pois a diretiva “DirectoryIndex” com
esta opção emitiria uma mensagem de erro, para solucionar este problema
utilizaremos “Alias”.
1 2 3 4 5 6 7 8 9 10 11 12 13
<VirtualHost *:80> ...

Alias /cgi-bin/ /home/dominio-da-web/cgi-bin/
<Directory/home/dominio-da-web/cgi-bin>    
   Options ExecCGI     
   SetHandler
cgi-script    
   DirectoryIndex
index.py   
   Order allow,deny    
   Allow
from all    
   AllowOverride
none
</Directory>
...
</VirtualHost>


Testes de Configuração


Para efetuar testes em teu servidor de aplicações CGI,
segue abaixo alguns exemplos de códigos para serem utilizados.
Exemplo em C/C++
1 2 3 4 5 6 7 8 9 10 11
#include <iostream>




using namespace std;



int main(int
argc, char**
argv) {    
cout << "Content-type: text/plain"
<<
endl << endl;    
cout << "<h1>C/C++</h1>"
<<
endl;     cout
<<
"<p>Olá mundo !!! eu sou um CGI.</p>"
<<
endl;    
return
0;


}
Exemplo em Python
1 2 3 4 5
#! /usr/bin/env python



print("Content-type:
text/plain\n\n"
)

print("<h1>Python</h1>\n")


print("<p>Olá
mundo !!! eu sou um CGI.</p>\n"
)
Exemplo em Perl
1 2 3 4 5
#! /usr/bin/perl



print
"Content-type: text/plain\n\n"
;


print
"<h1>Perl</h1>\n"
;

print
"<p>Olá mundo !!! eu sou um CGI.</p>\n"
;
Exemplo em Shell Script

1 2 3 4 5
#! /bin/sh



echo "Content-type: text/plain\n\n"

echo "<h1>Perl</h1>\n"


echo "<p>Olá mundo !!! eu sou um
CGI.</p>\n"

Otimizando o Servidor Web Apache

Imagine o seu domínio saindo do ar porque a máquina no qual o site está hospedado não possui memória ou processador suficiente para processar todas as requisições que chegam até ela, ou isto já aconteceu, ou está acontecendo com você neste exato instante . Isto muito é mal não é ?
Por experiencia própria vou tentar passar aqui algumas dicas para evitar que isto aconteça, seja você um web master ou um administrador de redes.
Quando um sistema é desenvolvido, um dos requisitos do projetado é verificar a plataforma e hardware no qual este sistema sera executado, podendo prever se servidores já ativos suportarão a aplicação desenvolvida ou se será necessária a contratação de uma máquina mais robusta.
Mas o que fazer se mesmo após toda uma análise de requisitos e após algum tempo o servidor começar a dar TOP(s) muito altos, chegando até a travar o sistema, tornando o acesso remoto impossível porque de uma hora para outra muitas requisições chegaram ao servidor Apache e muitas requisições a base de dados foram executadas, deixando o MySQL totalmente doido.

Não existe uma forma genérica para se configurar serviços web, principalmente um servidor Web Apache apara responder a requisições em excesso, porem podemos chegar a um consenso ou uma luz no fim do túnel para agradarmos a Gregos e Troianos de como configura-lo a fim de otimizar os serviços prestados.
A ultima frase não é um tanto quanto animadora, mas, devo lembrar que cada tipo de serviço disposto, seja ele na web ou em uma intranet consome recursos de formas diferentes. Como uma aplicação que roda em uma loja de calçados  por exemplo, a disponibilidade do banco de dados, impressora, cabeamento, sistema operacional, hardware e outros recursos que fogem do escopo desta postagem são fatores que influenciam um serviço.
E claro, não podemos esquecer do mais problemático de todos, o fator “humano“.
Portanto após cuidarmos de todos estes detalhes, podemos partir para o principal, o Apache.
Primeiramente você deve analisar o tráfego de requisições que chegam ao servidor Apache, para se ter uma estatística de consumo de memória que cada requisição do Apache esta consumindo e o tempo que cada requisição está prendendo a instância criada no sistema.
Complicado não é?
Mas digamos que após executar o comando “top” no linux:
servidor: ~# top


Você reparou que a média de consumo de mémória de uma instancia do apache é de 6MB, se existir 500 processos em execução, basta multiplicar o valor da memória pela quantidade de processos para achar o resultado de 3GB de Memória, isto mesmo, 3GB de memória serão necessários para dar conta de todos os processos. Lembrando ainda que você deve reservar memória para o sistema operacional e as outras aplicações, incluindo o próprio servidor Apache que consome em torno de 100MB, fazendo com que todos fiquem em total harmonia.
Uma diretiva que se pode utilizar, porem em certas circunstancias pode trazer mais problemas do que solução, em caso de não haver possibilidade de aumentar recursos de hardware no servidor web, podemos alterar a propriedade MaxClients do arquivo de configuração do apache.
MaxClients 500
Esta propriedade vai limitar o máximo número de processos do apache em execução no sistema operacional, fazendo assim com que a capacidade de memória existente não estoure. Porem fazer isso com o servidor tendo mais requisições do que o limite estipulado, fará com que os usuário excedentes fiquem esperando pela liberação de um processo, para poder carregar as páginas web tão esperadas.
Claro que se os recursos forem escassos, não dá para fazer milagre.
Uma forma de avaliar melhor a configuração efetuada, é utilizar o comando “ab”:



# ab -n 500 -c 100 http://www.meu-site.com.br
O comando “ab” auxilia no teste e verificação de requisições ao sistema web Apache, fazendo com que se tenha um ideia de como se comportará o servidor web com as requisições as página de sites existentes. O comando “ab” ou Apache Bench não simula a real manipulação de requisições efetuadas por um usuário real, mas requisita o servidor muitas vezes.
Outra dica é ativar o KeepAlive no arquivo de configurações do Apache, fazendo com que várias requisições sejam efetuadas atravês de uma mesma conexão, não tendo assim, fazer com que não seje preciso encerrar um socket e abri-lo novamente.
Arquivos de configuração do Apache (apache2.conf)
1
2
3
4
5
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

Outra propriedade é o MaxKeepAliveRequests que que indica quantas requisições serão tratadas pelo KeepAlive.
1
2
3
4
5
6
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

A próxima propriedade deve ser atribuido um valor de acordo com o tipo de sistema que roda sobre o servidor web Apache, Mas não atribua um valor muito alto, pois fara com que a próxima requisição fique muito tempo na file aguardando para ser tratada.
1
2
3
4
5
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

As configurações abaixo indicarão ao Apache como se comportar com a inicialização, execução com requisições e cargar de processos.
1
2
3
4
5
6
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
1
2
3
4
5
StartServers                  5
MinSpareServers          5
MaxSpareServers        10
MaxClients                150
MaxRequestsPerChild   0

A propriedade StartServers indica o número de processos que ficará ativo na inicialização do servidor web Apache ficando carregado em memória, esperando por uma requisição.
MinSpareServers são instâncias reservadas pelo Apache para o caso de sofrer carga elevada de requisições, não tendo assim que criar novas instâncias para tratar as requisições que chegaram ao servidor, não fazendo com que essas requisições fiquem na fila de espera. As Opções MinSpareServers e MaxSpareServers determinam o mínimo e o máximo de reservas que deve ficar disponível para responder as requisições solicitadas
MaxClients A directiva MaxClients define número máximo de solicitações simultâneas que serão tratados pelo servidor web apache. Quaisquer tentativas de conexão acima do limite definido será colocado na fila até um processo filho seja liberado e então atender a tal requisição.
MaxRequestsPerChild Limita o número de pedidos que cada processo irá lidar durante a sua vida.

 

htaccess – a espada de dois gumes

Tome cuidado com o htaccess, pois tal recurso é incrivel do ponto de vista funcional, podendo efetuar diversas interações nas requisições que chegam ao servidor web, porem, este recurso é desencorajado tendo como motivo o sobrecarregamento do servidor com alterações de desvio do fluxo natural. Procure evitar utilizar este recurso e, se for necessário a sua utilização tenha cautela.

 

Módulos

Os módulos do apache o torna um servidor versátil e robusto, porem, tenha certeza que os módulos carregados são realmente necessários, pois do contrário estará carregando recurso extra e o apache rodaŕa mais pesado, consumindo mais memória do que o esperado.

 

Modular ou Compilado

Já ouvi muito sobre, “… instale o apache 1.3 … , ” … instale o apache 2.0, pois é melhor que o apache 2.2 …”, “… compila ele …”. Na verdade a respeito do versionamento, devemos e isto é incentivado na própria página do apache, a utilizar sempre d ultima versão do software a fim de obter todas as modificações ocorridas até o momento, como correções de vulnerabilidades e bugs. Claro que se você não pode efetuar a atualização do teu servidor web Apache para a ultima versão, terá que utilizar a versão que corresponde a sua necessidade, porem se você fará uma instalação nova do sistema, recomendo instalar a ultima versão disponível.
Já entre ser compilado, a grande diferença está em o apache já ter agregado a ele os módulos de necessidade do utilizador, como mod_rewrite, mod_ssl, mod_jk e entre outros, consumindo assim menos memória pois não é necessário carregar tal recurso. Mas o modular torna o serviço de manipulação e configuração do servidor, algo menos árduo facilitando a vida do administrador de sistemas tendo é claro como lado ruim o de consumir um pouco mais de memória para carregar os recursos extras.
Então optar entre o modular e o compilado é uma questão de necessidade e praticidade na utilização de recursos de hardware e gerenciamento do sistema, o que apenar o utilizador obterá tal resposta.
Obvio que toda a informação citada acima não servirá de nada se, você não coletar dados úteis sobre o teu servidor web, sobre as requisições e consumo que o teu site gera. Tendo isto em mente, devo ainda lembrar que o apache fornece uma infinidade de opções o que tornaria impossível agregar tal informação em apenas uma postagem.
Mas vai a dica, a documentação do apache é muito rica o que torna gratificante buscar informações sobre as configurações e recursos que o apache disponibiliza, abrindo assim o leque de conhecimento sobre este incrível servidor.
Para mais informações, comentem e enviem perguntas, pois se estiver ao meu alcance, terei o prazer em disponibilizar tal conhecimento.
Até a próxima.

quinta-feira, 18 de agosto de 2011

Max Connections do IIS no Windows XP SP2

O windows XP não foi feito para atuar como servidor, mas sim como máquina de usuário. Porém é frequente que façamos uso do windows XP durante o processo de desenvolvimento, então muitas vezes precisamos que o windows XP tenha um comportamento um pouco mais parecido com o de um servidor.

O IIS do windows XP vem configurado por padrão para um limite de no máximo 10 conexões simultâneas. Para algumas atividades de desenvolvimento isso pode ser prejudicial.

Podemos alterar esse limite de conexões simultâneas até um limite máximo de 40 conexões, limite definido pelo sistema operacional.

Para fazer essa alteração acesse o diretório adminScripts que estará dentro do diretório do IIS (por default é c:\inetpub) e execute a seguinte instrução, via prompt :

adsutil set w3svc/MaxConnections 40

Pronto, alteração realizada.

sábado, 6 de agosto de 2011

Instalando e Configurando um Servidor DHCP (Windows 2003)

Antes de poder configurar o serviço DHCP, é necessário instalá-lo no servidor. O DHCP não é instalado por padrão durante uma instalação típica do Windows Standard Server 2003 ou do Windows Enterprise Server 2003. É possível instalar o DHCP durante a instalação inicial do Windows Server 2003 ou após a instalação inicial ser concluída.


Como instalar o Serviço DHCP
1. Clique em Iniciar, menu executar e digite o comando cys.exe.
http://static.oficinadanet.com.br/imagens/coluna/2432/1.jpg
2. Na caixa de diálogo Bem vindo ao Assistente para Configurar o Servidor, clique emavançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/2.jpg
3. Na caixa de diálogo Etapas Preliminares, devemos observar os itens necessários para instalar e configurar ferramentas no Windows Server 2003.
http://static.oficinadanet.com.br/imagens/coluna/2432/3.jpg
4. Na caixa de diálogo Opções de Configuração, devemos escolher o item Configuração personalizada, para fazer somente a instalação do Servidor de DNS.
http://static.oficinadanet.com.br/imagens/coluna/2432/4.jpg
5. No Assistente de Configuração, devemos selecionar a opção Servidor DHCP, e clicar em avançar para fazer a instalação desta ferramenta.
http://static.oficinadanet.com.br/imagens/coluna/2432/5.jpg
6. Quando a Instalação estiver completa, clique em Concluir.

Como configurar o Serviço DHCP


Após a instalação e inicialização do serviço DHCP, é necessário criar um escopo, que é um intervalo de endereços IP válidos disponíveis para concessão para os computadores DHCP clientes na rede. A Microsoft recomenda que cada servidor DHCP no ambiente deve ter, pelo menos, um escopo que não sobreponha qualquer outro escopo de servidor DHCP em seu ambiente. No Windows Server 2003, os servidores DHCP em um domínio com base no Active Directory deve ser autorizado para impedir que servidores DHCP invasores fiquem online. Qualquer Servidor DHCP do Windows Server 2003 que se autodetermina autorizado não gerenciará clientes.

Como criar um novo escopo
1. Clique em Iniciar, aponte para Programas e para Ferramentas administrativas e clique em DHCP.

2. Na árvore do console, clique com o botão direito do mouse no servidor DHCP no qual deseja criar o novo escopo DHCP e clique em Novo Escopo.

3. No Assistente para novos escopos, clique em Avançar e digite um nome e uma descrição para o escopo. Pode ser qualquer nome que quiser, mas deve ser descritivo o suficiente de modo que possa identificar a finalidade do escopo na sua rede (por exemplo, é possível usar um nome como "Endereços de clientes do escritório de administração"). Clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/6.jpg
4. Digite o intervalo de endereços que podem ser concedidos como parte deste escopo (por exemplo, um intervalo de endereços IP iniciando de 192.168.0.100 e terminando em um endereço de 192.168.0.250). Como estes endereços serão fornecidos aos clientes, todos deverão ser válidos para a rede e não estarem atualmente em uso. Se desejar usar uma máscara de sub-rede diferente, digite a nova máscara de sub-rede. Clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/7.jpg
5. Digite um endereço IP que você deseja excluir da lista inserida. Isto inclui qualquer endereço no intervalo descrito na etapa 4 que já podem ter sido atribuído estaticamente a diversos computadores na organização. Normalmente, os controladores de domínio, os servidores da Web, os servidores DHCP, os servidores DNS (Sistema de nomes de domínio) e outros servidores, têm endereços IP atribuídos estaticamente. Clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/7.jpg
6. Digite o número de dias, horas e minutos antes da expiração de um endereço IP concedido deste escopo. Isto determina por quanto tempo um cliente pode deter um endereço concedido sem renová-lo. Clique em Avançar e em Sim, desejo configurar essas opções agora para estender o assistente para incluir definições para a maioria das opções comuns de DHCP. Clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/8.jpg
7. Digite o endereço IP para o gateway padrão que deverá ser usado pelos clientes que obtêm um endereço IP deste escopo. Clique em Adicionar para colocar o endereço do gateway padrão na lista e clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/9.jpg
8. Se estiver usando servidores DNS na sua rede, digite o nome de domínio da sua organização na caixa Domínio pai. Digite o nome do servidor DNS e clique em Resolver para garantir que o servidor DHCP possa contatar o servidor DNS e determinar seu endereço. Em seguida, clique em Adicionar para incluir este servidor na lista de servidores DNS atribuídos aos clientes DHCP. Clique em Avançar e execute as mesmas etapas se estiver usando um servidor WINS (serviço de Cadastramento na Internet do Windows), adicionando seu nome e endereço IP. Clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/10.jpg
9. Click Sim, desejo ativar este escopo agora para habilitar o escopo e permitir que os clientes obtenham concessões e, clique em Avançar.
http://static.oficinadanet.com.br/imagens/coluna/2432/11.jpg
10. Clique em Concluir.
11. Na árvore do console, clique no nome do servidor e clique em Autorizar no menu Ação.

Solução de problemas

As seguintes seções explicam como solucionar alguns dos problemas que podem ocorrer ao tentar instalar e configurar um servidor DHCP com Windows Server 2003 em um grupo de trabalho.

Os clientes não podem obter um endereço IP
Se um cliente DHCP não tiver um endereço IP configurado, isso normalmente indicará que o cliente não pôde entrar em contato com um servidor DHCP. Isto pode ser causado por um problema de rede, ou pelo fato do servidor DHCP não estar disponível. Se o servidor DHCP foi iniciado e outros clientes conseguiram obter um endereço válido, verifique se o cliente tem uma conexão de rede válida e, se todos os dispositivos de hardware do cliente relacionados (incluindo cabos e adaptadores de rede) estão funcionando corretamente.

O servidor DHCP não está disponível
Se um servidor DHCP não fornecer endereços concedidos aos clientes, normalmente isso ocorrerá porque o serviço DHCP não iniciou. Se este for o caso, talvez o servidor não tenha sido autorizado para operar na rede. Se você conseguiu iniciar o serviço DHCP anteriormente, mas parou deste então, use o Visualizar Eventos para verificar o log do Sistema em busca de entradas que possam explicar a razão do serviço DHCP não iniciar.

Para reiniciar o serviço DHCP:
- Clique em Iniciar e em Executar.
- Digite cmd e pressione ENTER.- Digite net start dhcpserver e pressione ENTER.
-ou-- Clique em Iniciar, aponte para Programas, para Ferramentas administrativas e clique em Gerenciamento do computador.- Expanda Serviços e aplicativos e clique em Serviços.- Localize e clique duas vezes em Servidor DHCP.- Verifique se Inicialização está definido como Automático e se Status do Serviço está definido como Iniciado. Se não estiver, clique em Iniciado.- Clique em OK e feche a janela do Gerenciamento do Computador.

Como Montar uma Rede Wireless

edesComo Montar uma Rede Wireless


Redes Wireless estão em franco crescimento. Novas redes são implementadas, com soluções mais rápidas, abrangentes e confiáveis. Até pouco tempo, elas eram caras e difícil de usar. Ouvimos
muitos casos de empresas pagando milhares de dólares, só para descobrir que o alcance de seu equipamento não era suficiente para seu escritório. Este artigo responde às três perguntas mais comuns de primeiros usuários de redes sem fios: o que devo comprar, o que preciso fazer, e como colocar tudo funcionando junto.
Redes Wireless estão em constante progresso, entretanto o princípio básico é o mesmo. Em vez de usar cabos para transmitir informações de um ponto até outro (ou muitos), usa-se sinais de rádio.
A comparação mais íntima que pode ser feita é com o telefone sem fio a 2.4GHz. De fato, a tecnologia usada é quase idêntica, e quanto aos benefícios, nem se fala. Com uma rede sem fios um computador ou laptop podem ser movidos em qualquer lugar dentro do alcance da rede sem a interrupção de serviço de rede. Isto significa que se você tiver um laptop, você pode ficar na sua poltrona favorita e acessar a Internet ou acesso sua rede sem arrastar um fio através da
sala.

O que Comprar – padrões de rede


Há três padrões principais para as Redes Wireless: 802.11b, 802.11a e 802.11g. Cada padrões tem suas vantagens e desvantagens. Ao selecionar um padrão em rede você deve considerar cuidadosamente suas necessidades em termos de alcance, layout do prédio, e custos.
802.11B O tipo de Rede sem fios mais popular é o 802.11b. Tem uma velocidade de máximo de 11 Mbps, com um alcance de máximo operacional de 100 metros em ambiente fechado e 180 metros em
uma área aberta. A distância do ponto de acesso determina diretamente a velocidade da conexão. A 20 metros a velocidade é normalmente 11 Mbps. Em alcances de 70-110 metros a velocidade pode cair
para 1 Mbps ou abaixo que pode causar esporádica perda de sinal, bem como lentidão na conexão.
802.11b opera na popular faixa de freqüência de 2.4GHz, que pode causar problemas com telefones sem fio e fornos microondas em raras ocasiões.
802.11A Em comparação com 802.11b, 802.11a é mais rápido, porém os equipamentos usandos este padrão são freqüentemente mais caros. Fornece um aumento significante em velocidade (até 54 Mbps) mas com um alcance operacional menor. Em distâncias superiores a 30 metros há redução na velocidade, mas em alcance menores fica entre 22 e 40 Mbps. Este equipamento utiliza a freqüência de 5GHz, que significa mais confiabilidade, especialmente se você tiver outras redes
de Rede sem fios na mesma área.
802.11G Uma nova linha de produtos de fabricantes de rede sem fios combina os conceitos de 802.11a e 802.11b. Conhecida como Tecnologia “G” (802.11g), apresenta a velocidade de um
equipamento 802.11a, mas é completamente compatível com as rede 802.11b existentes. É
ligeiramente mais barato que a tecnologia 802.11a, mas ainda usa a 2.4 faixa de GHz, então ele pode ainda causar problemas com outros dispositivos. É uma pontes entre 802.11a e b, ao mesmo
tempo em que fornece uma versão aperfeiçoada para uma rede “b” existente. O alcance é o mesmo que 802.11b. Este padrão não é compatível com 802.11a.
É recomendável que você adquira todos os equipamentos para sua rede Wireless de um único fabricante. Muitos oferecem soluções integradas que dão maior alcance e velocidade uma vez que
todos os componentes usam a mesma tecnologia e boa parte dos processos de verificação e compatibilização podem ser otimizados. Equipamentos das marcas D-Link e LinkSys oferecem essas características, com alguns chegando a desempenho superior ao de redes cabeadas a 100Mbps.

Layout de Rede - De que eu preciso?


A primeira coisa nós vamos enfocar é, “O que eu preciso, exatamente?” Isto pode ser uma pergunta complicada. Muitas pessoas migram para Rede sem fios por sua relação custo-benefício comparada a
uma rede cabeada. Em algumas instâncias uma rede cabeada é cara demais para se instalar. Embora uma rede de Rede sem fios tenha bom custo-benefício, há assuntos que precisam ser considerados
como alcance de sinal, velocidade de rede e interferência.
Redes Wireless para dois sistemas: Com somente dois computadores, um ponto de acesso não é necessário. Tudo que você precisa é um adaptador de Rede sem fios para cada computador. Este tipo de instalação é chamado Adhoc, e é facilmente configurada.

Figura 1
Nota: Se você desejar compartilhar uma conexão de internet, você pode usar um proxy para realizar isto. Também, Windows ME, 2000, e XP oferecem recursos de compartilhamento básico de Conexão à Internet embutidos.
Localização, Localização, Localização As dimensões físicas da área e o número de
computadores que precisam de acesso de rede determinam o tipo de equipamento de Rede sem fios necessário. Se todos os computadores estão em uma área pequena, digamos um escritório não mais do que 40-50 metros metros, com algumas paredes, tudo de que se precisa são: (1) adaptador de rede de Rede sem fios por computador e (1) Access Point Wireless (ou Roteador se uma conexão de banda larga precisa ser compartilhada). Para configurar a rede, instale um adaptador de rede de Rede sem fios em cada computador e ligue o Access Point ou Roteador em uma posição central. O diagrama
abaixo de explica este conceito em mais detalhe:

Figura 2
Um assunto importante que deve ser tratado quando instalando uma rede de Rede sem fios é a localização e o material de paredes. Paredes podem cortar o sinal de Rede sem fios pela metade, ou até mais. Isto é crucial quando se decide onde colocar o Roteador ou Access Point. No diagrama acima nenhum computador está a mais de 30 metros do Access Point, com poucas paredes para degradar o sinal. Este ambiente é preferível, mas nem sempre possível.
Fatorando o número de PCs A primeira pergunta a fazer é: Quantos computadores se ligarão a esta rede sem fios? Se você já tiver uma rede cabeada, você precisará criar uma rede Híbrida, que é discutida à frente.
Redes Wireless para três ou mais sistemas Se a rede vai conter mais então dois sistemas então uma Ad hoc rede não vai ser uma boa solução. Com três ou mais sistemas um Access Point ou
Roteador devem ser colocados em uma localização central com repetidores ou Access Points adicionais extendendo o alcance tanto quanto preciso. Quando trabalhar com redes sem fios, sempre
tente usar todos os equipamentos de uma única marca! Isso prevene muitas dores de cabeça mais tarde (e exige muito menos configuração).

Estudo de Caso:
Instalação de uma LAN de Rede sem fios de quatro computadores


Você tem quatro (4) computadores em sua rede, você não tem conexão de banda larga à Internet e todos os computadores estão a 30 metros de distância um do outro. Para este tipo de rede o equipamento seguinte é necessário: (1) Access Point Wireless e (4) Adaptadores de Rede Wireless.
O NICs pode ser USB (externa), PCI (interna), ou, no caso de um laptop, PCMCIA. Os adaptadores Wireless USB são o tipo mais versátil nesta situação uma vez que sua antena pode ser posicionada longe de qualquer obstáculo fornecido pelo PC propriamente ou a escrivaninha. O desempenho de
NICs USB e PCI são aproximadamente idênticos, porém na maioria das situações a USB uma vai ter
uma melhor linha de visão com o Access Point ou Roteador. Quanto melhor a Linha de Visão, mais alta a velocidade.
Quando comprar equipamento de Rede sem fios lembre-se sempre de certificar-se de que todos seja do mesmo tipo de WiFi. O mais comum é tipo 802.11b, e a maior parte de equipamento é compatível com este padrão. Uma vez você tem comprado um Access Point básico e seus quatro adaptadores de rede, é hora de começar!
Passo 1: Ache um local apropriado para o Access Point
Para alcançar o melhor sinal com a menor interferência da mobília e dispositivos elétricos mantenha o Ponto de Acesso a cerca de 1,60m de altura. Coloque o Access Point em uma estante, armário, ou monte-o na parede.
Advertência: Nunca instale um Access Point dentro de um espaço fechado. Isso causa muita degradação de sinal e poderá causar aquecimento do AP. Mantenha-o em uma área aberta, se possível.
Passo 2: Instale os adaptadores de rede Wireless Siga as instruções da instalação para os adaptadores de rede. A instalação é geralmente simples especialmente quando você usa todos os quipamentos do mesmo fabricante.
Passo 3: Teste o sinal e reposicione o AP se necessário Cada adaptador deve ser conectado
ao Access Point que a instalação é concluida (reinicie o computador). A maioria de fabricantes de
Rede sem fios incluirá um pequeno medidor de sinal com seus adaptadores. Vá para cada sistema e passe alguns minutos observando o medidor para ter certeza de que o sinal é fixo e alto. Se ele
tender a flutuar ou é muito baixo, então talvez você precise mover o Access Point para mais perto. Às vezes alguns centímetros fazem uma grande diferença. A localização ótima de um Access Point é aquela onde você consegue a melhor qualidade e força do sinal para todos os computadores.

Misturando Redes Wireless e Cabeadas, uma rede Híbrida


Se já há uma rede cabeada e somente alguns computadores precisam conectar via Wireless o processo é semelhante. Quando escolher um Access Point ou Roteador, certifique-se de que ele venha com algumas portas LAN (a maioria tem portas 10/100 embutidos). Eles se tornarão eficazes concentradores na sua rede com um mínimo de configuração. Então, configure seus computadores da Rede Wireless para acessar o AP ou Roteador, e você terá uma rede híbrida.
Rotear uma conexão em banda larga através de sua rede Wireless é quase exatamente o mesmo que com uma rede cabeada. A maioria de Roteadores Wireless têm uma interface de administração baseada em web-Browser, que premite a configuração da conexão de banda larga e seu compartilhamento através da sua rede. Plugue seu modem de banda larga em seu roteador Wireless, configure o roteador e surfe à vontade.

Extendendo Alcance, Layout Avançado de Rede


Às vezes o plano de rede básica não funciona devido ao alcance, obstáculos como paredes e lajes, ou o layout geral do ambiente. Quando isto acontecer existem algumas opções e todas elas têm várias vantagens e desvantagens.
Se o alcance só precisa extender-se por 50 ou 70 metros, um ou mais Access Points Repetidores podem ser ligados à rede. Estes pequenos equipamentos funcionam como um Access Point trabalhanem um modo especial que permite a integração de dois ou mais Access Points em uma única rede. Para configurar o repetidor, você deve plugá-lo à sua rede física através de um cabo Ethernet Categoria 5E e configurá-lo. Após essa configuração você poderá movê-lo para seu local definitivo. Os repetidores podem normalmente dobrar o alcance efetivo da rede Wireless, permitindo que mais computadores sejam ligados à rede. Os repetidores podem ser adicionados conforme a necessidade para extender a rede com algumas limitações. Um diagrama básico abaixo
demonstra este princípio.
Rede de Redes Wireless básica com Repetidor:

Figura 3
Rede expandida com vários Repetidores:

Figura 4
Cabeando mais de uma Rede Wireless Mas, suponha a rede precisa atender vários andares, ou que haja duas ou mais redes sem fio tão separadas que vários repetidores precisam ser alinhados para cobrir a distância. Quando isso ocorrer, a opção é ligar os access points através de uma
rede cabeada.Os repetidores são muito úteis, mas às vezes o cabeamento metálico ou por fibra óptica é a única solução possível. Os princípios básicos de Rede sem fios ainda se aplicam, mas existem algumas
mudanças a fazer.
O melhor caminho para fazer isto é para instalar todas as redes sem fios separadamente, então executar o cabeamento em Categoria 5E para cada um dos Access Points de longo alcance que precisar conectar. Os Access Points exigirão um mínimo de configuração, mas isso não é difícil e sempre vem incluida na documentação técnica do equipamento. O melhor uso para isto é para prédios
de vários andares, uma vez que o sinal simplesmente não trafegará através deles. O diagrama abaixo de mostra a um exemplo deste tipo de expansão de Redes Wireless.

Figura 5

Conclusão


Uma coisa importante a lembrar sobre redes sem fios, como qualquer outro projeto de computadores é Planejamento. Não há nada pior que especificar os equipamentos, comprar tudo, só para ser parado por um problema inesperado. Minha sugestão é para trabalhar em um diagrama básico da área
para instalar a rede. Mapeie as distâncias entre cada computador e planeje a localização dos Access Points e Repetidores. Leve em conta as paredes e outros obstáculos.