apache | Diário de Nilton Felipe
Apache – Proxy Reverso
Bom, suponhamos que você tem dois servidores Windows 2000 Server rodando na rede interna com IPs não roteáveis, um rodando aplicações ASP com o Serviço IIS (Internet Information Service) e outro rodando aplicações Java, por exemplo o Jakarta – TomCat. Ambos acessando um bando de dados robusto do tipo Oracle ou outro banco qualquer.
Configurando o Apache para o funcionamento do proxy
Passei um bom tempo estudando o funcionamento desse serviço de Proxy Reverse, pois eu não conhecia ninguém que já tivesse feito isso, porém tive o auxílio de um grande amigo e professor chamado Ulisses T.V. Guedes (responsável pela área de redes do Instituto Nacional de Pesquisa Espaciais) e aqui deixo meus votos de agradecimentos à ele.
No meu caso utilizei o Apache 1.3.27 instalado num Slackware 8.1. As aplicações envolvidas são:
Windows 2000 Server rodando o IIS com páginas ASP;
Windows 2000 Server rodando o Jakarta TomCat da Apache.
Suponhamos que esses 2 Servidores Windows já estão configurados para rodar, só que com IPs não roteáveis, ou seja, somente na rede interna.
No caso, somente o Apache que está rodando no Slackware tem o domínio válido e pode ser acessado. Chamaremos o domínio de http://www.empresa.com.brpara o exemplo.
Como sou do tipo que gosto de fazer tudo na unha, tive que baixar o pacote .tar.gz do Apache, descompactar e compilar. Vamos a receita do bolo!
Os seguintes pacotes foram utilizados:
php-4.3.4RC2.tar.gz
openssl-0.9.6i.tar.gz
Vou ser bonzinho e explicar todos os passos desde a instalação do Apache completo até…. 😉
NOTA: vou partir do princípio que você já fez o download dos pacotes, que podem ser facilmente encontrados a partir do site de buscahttp://freshmeat.net.
Primeiro passo, descompacte todos os pacotes num diretório qualquer. No meu caso, escolhi /usr/local/src e lá coloquei os arquivos:
# tar -zxvf apache_1.3.27.tar.gz
# tar -zxvf mod_ssl-2.8.14-1.3.27.tar.gz
# tar -zxvf php-4.3.4RC2.tar.gz
# tar -zxvf openssl-0.9.6i.tar.gz
Comece a instalação pelo PHP:
# cd php-4.3.RC2
# ./configure –with-apache=../apache_1.3.27
Agora vá para o diretório do OpenSSL:
# cd ../Openssl-0.9.6i
Agora o ModSSL:
# cd ../mod_ssl-2.8.14-1.3.27
# ./configure –with-apache=../apache_1.3.27 –with-ssl=../openssl-0.9.6i
Agora o Apache:
# ./configure –with-prefix=/usr/local/apache –with-bindir=/usr/local/bin –with-sbindir=/usr/local/sbin –enable-module=ssl –enable-module=proxy –enable-shared=proxy –enable-module-rewrite –enable-shared=rewrite –activate-module=src/modules/libphp4.a
Falei que gosto de fazer as coisas na mão né? rs. Taí o resultado, porém funciona somente com os módulos que quero.
O importante são os parâmetros –enable-module=proxy e –enable-module=rewrite. No caso de instalações por RPM tipo RedHat, esses módulos vem ativados por padrão, bastando apenas desativar na configuração do httpd.conf o que você não deseja carregar.
Para finalizar a configuração do Apache, volte para o diretório do PHP e copie o arquivo php.ini-dist para /usr/local/lib/php.ini.
Configurando o proxy reverse para acessar outras máquinas
Após tudo estar funcionando, vá para o diretório do Apache e edite o arquivo de configurações:
Nele, verifique se as seguintes configurações foram bem sucedidas na instalação:
LoadModule php4_module libexec/libphp4.so -> esse é apenas para o PHP
Esses caras são os responsáveis pelo funcionamento do Proxy Reverse. Caso esses não estejam declarados, reveja a compilação do seu Apache.
Agora vamos para o que interessa realmente, procure a linha <IfModule mod_proxy.c>, iremos trabalhar com ela agora:
ProxyRequests Off -> deixe essa linha como Off, já tive problema com ela
<Directory /usr/local/apache/htdocs/serv1>
Redirect Permanent /serv1 https://www.empresa.com.br/serv1/
Nessa primeira passagem está acontecendo o seguinte:
O que se refere a ProxyPass /serv1, significa que quando alguém digitar http://www.empresa.com.br/serv1 ele irá solicitar o serviço emhttp://192.168.0.22:80/serv1/ ou seja, o serviço solicitado roda na porta 80 do primeiro servidor na rede interna.
Um detalhe importante é que a primeira solicitação que é o serv1 digitado no http://www.empresa.com.br tem que ser idêntica a entrada do servidor da rede interna, ou seja, no primeiro caso é um IIS que está rodando no 192.168.0.22, então no diretório de serviços dele a pasta onde se encontra as páginas ASP tem que se chamar serv1 (nesse exemplo é claro).
Uma vez encontrado, o ProxyPassReverse devolve a solicitação e quem vai postar a tela é o Apache, sendo que ele não precisa ter suporte a ASP, pois quem está processando páginas ASP é o Windows 2000. Isso forma um cluster, as duas máquinas estão processando as informações e deixando o serviço bem mais rápido.
A diretiva <Directory /usr/local/apache/htdocs/serv1> tem que existir, pois o Apache está fazendo de conta que é ele quem é dono do serviço. então você tem que ter criada uma pasta chamada serv1 no seu htdocs do Apache.
No Redirect Permanent estou forçando para que a navegação do servidor Windows 2000 Server utilize a criptografia de SSL criada no Apache, ou seja oWindows 2000 não tem criptografia, então o Apache fornece o serviço de criptografia.
Continuando dentro da tag <IfModule mod_proxy.c>, vamos ao exemplo de configuração para o segundo servidor:
ProxyPass /clijava/ http://192.168.0.20/clijava/
ProxyPassReverse /clijava/ http://192.168.0.20/clijava/
<Directory /usr/local/apache/htdocs/clijava>
Redirect Permanent /clijava https://www.empresa.com.br/clijava/
Essa outra diretiva está acionando o outro Windows 20000, o que roda o Jakarta TomCat. O procedimento é quase idêntico ao que expliquei acima, sendo que nesse caso o AllowCONNECT 443 é utilizado porque além da criptografia do Apache, o Jakarta também está criptografado, então nesse caso os dois servidores estão conversando em criptografia.
Em todo o caso o Jakarta não precisaria estar criptografado, mas fiz uns testes com ele e percebi que se os dois estiverem criptografado, tenho que usar essa diretiva.
CacheRoot "/usr/local/apache/proxy"
Isso serve para a troca de cache e é extremamente importante, dependendo de quantas requisições seu servidor interno tiver, você tem que alterar esse números ai. Caso queira saber mais a fundo consulte a documentação do Apache.
Finalmente, pronto!
Aqui termino minha publicação do artigo e espero que isso possa ajudar alguém como tem me ajudado até hoje. Caso alguém tenha alguma dúvida, estarei a disposição para poder exclarecê-las.
Fonte: http://xoops.net.br/docs/apache/apache-proxy-reverso/index.php
por Nilton Felipe • Postado em TI	• Com a tag apache, balanceamento de carga, mod_proxy.c, proxy reverso, reverso, tom cat
O httpd.conf é o arquivo principal de configuração do Apache, que se encontra dentro da pasta Conf, no diretório de instalação do Apache.
O arquivo está dividido em três seções, que são:
1 Parâmetros globais
2 Diretivas de Funcionamento
3 Host Virtuais
No arquivo encontram-se todos os parâmetros de funcionamento do Apache. Alguns parâmetros são gerais para a instalação e funcionamento do Apache. Muitos dos outros parâmetros pode configurar independentes para um conjunto de diretórios e/ou arquivos. Nestes casos, os parâmetros se encontram localizados dentro de seções onde se indica o âmbito de aplicação do parâmetro.
As seções mais importantes são:
<Directory> : Os parâmetros que se encontram dentro desta seção, só se aplicarão ao diretório especificado e a seus subdiretórios.
<DirectoryMatch>: Igual ao Directory, porém aceita no nome do diretório expressões regulares.
<Files>: Os parâmetros de configuração proporcionam controle de acesso dos arquivos pelo seu nome.
<FilesMatch>: Igual ao Files, porém aceita expressões regulares no nome do arquivo.
<Location>: Proporciona um controle de acesso dos arquivos por meio da URL
<LocationMatch>: Igual ao Location, porém aceita expressões regulares no nomes do arquivo.
Algumas vezes as diretivas de funcionamento das seções anteriores se podem cruzar em cujo caso tenha a seguinte ordem de preferência:
1. <Directory> e .htaccess (.htaccess prevalece frente a <Directory>)
2. <DirectoryMatch> e <Directory>
3. <Files> e <FilesMatch>
4. <Location> e <LocationMatch>
Também há que destacar, que o arquivo contém vários comentários para sua correta utilização, as linhas comentadas aparecem com o símbolo #.
por Nilton Felipe • Postado em TI	• Com a tag apache, configuração apache, httpd.conf
Onde encontro o arquivo httpd.conf do Apache?
Se você é usuário do Linux e o Apache 2 foi instalado no local padrão, então o arquivo poderá ser encontrado na pasta /etc/apache2/
Porém, as configurações principais do servidor Apache2 devem ser feitas no arquivo apache2.conf, que se encontra no mesmo diretório citado no parágrafo anterior.
Caso você esteja procurando o local onde se configura os domínios para a criação de múltiplos sites em um mesmo servidor (Virtual Host) o arquivo onde se encontram estas configurações é o /etc/apache2/sites-available/default