Mostrando postagens com marcador Proxy. Mostrar todas as postagens
Mostrando postagens com marcador Proxy. Mostrar todas as postagens

quarta-feira, 21 de janeiro de 2026

Apache Web Server Httpd - Configurações com e sem Proxy Reverso

INTRODUÇÃO


Na configuração do proxy reverso do apache Web Server, podemos ter situações onde queremos mapear paths com ou sem o proxy reverso. Isso tudo dentro do mesmo servidor Apache, sem precisar criar outro servidor Apache (isto é, criar outro container para subir outro Apache para resolver o problema sem proxy reverso).


CONFIGURAÇÃO


Para fazer isso, nos arquivos de configurações do apache, com a extensão .conf, por exemplo[1], devemos informar a diretiva "!" para o proxy reverso não estar ativo para um determinado path, por exemplo.

Conforme documentação[2], temos o seguinte exemplo de configuração:

ProxyPass            /site/recursos/docs !

ProxyPassReverse     /site/recursos/docs !

ProxyPass            /site/recursos "http://backend.exemplo.com"

ProxyPassReverse     /site/recursos "http://backend.exemplo.com"


Nesse caso, ao acessar o path "/site/recursos/docs" não funcionará o proxy reverso. Mas o que estiver configurado no Apache além disso (como acesso a diretório ou outras configurações) pode funcionar, sem conflitar com a configuração do Proxy Reverso.


Observação: A ordem dos paths é importante, colocando primeiro o path mais detalhado possível para o mais geral. Pois na execução do proxy reverso, verá se o path "/site/recursos" tem proxy reverso, nesse caso, a primeira configuração é "/site/recursos/docs" o que não "bate" (match), e indo para a configuração seguinte que dará "match" e será executada (indo para a URL http://backend.exemplo.com).

Se fosse o contrário (configurações invertidas, onde temos o path "/site/recursos" primeiro), ao chamar a URL "/site/recursos/docs" fará um match com a configuração "/site/recursos" apenas no começo (porque esse path é mais geral) e será válido o match, sendo executado o proxy reverso da configuração "/site/recursos" que chamará a URL http://backend.exemplo.com o que estará errado, segundo as nossas configurações.


A seguir, temos o restante da configuração para mapear o path "/site/recursos/docs" para o sistema de arquivos (File System) do servidor:


DocumentRoot "/var/local/docs"

Alias /site/recursos/docs "/var/local/docs"

<Directory "/var/local/docs">

    Options Indexes FollowSymLinks MultiViews

    AllowOverride None

    Require all granted

</Directory>


A configuração do proxy reverso e depois a configuração do diretório (nesse ordem) devem estar dentro da tag "VirtualHost" do arquivo de configuração do Apache Httpd.


CONCLUSÃO

Com essa configuração conseguimos desativar o proxy reverso somente para um determinado path e evitando o conflito com outras configurações de proxy reverso para outros paths. Sem isso, precisaríamos criar outros servidores/containers para isolar isso, o que sempre pode não ser possível.


REFERÊNCIAS


[1] Dependendo da versão do Apache e até do sistema operacional subjacente, pode ter mudanças na organização dos arquivos de configuração. Uma vez entendido essas mudanças, a essência das configurações descritas nesse artigo, permanece a mesma, somente variando a sintaxe e localização desses arquivos de configuração.

[2] https://httpd.apache.org/docs/2.4/mod/mod_proxy.html


quinta-feira, 19 de fevereiro de 2015

Configurando Exceção de Rede (Network) no Ubuntu

INTRODUÇÃO

Quando acessamos o Linux, mas especificamente o Ubuntu 14.04 (rode o comando uname -a para saber a versão do Linux) geralmente estamos numa rede com o servidor Proxy ativado. E geralmente para usarmos, precisamos configurar o Linux com o IP e PORTA do servidor Proxy. Além disso, há casos que o servidor Proxy exige autenticação, isto é, fornecer o USUARIO e SENHA para o servidor Proxy aceitar as requisições.

Nesse artigo, vamos mostrar como configurar o proxy de modo geral no Linux Ubuntu versão 14.04 e como configurar os softwares de gerenciamento de pacotes como o APT-GET e APTITUDE a baixarem os pacotes pelo proxy.



CONFIGURANDO O PROXY PARA O LINUX EM GERAL


1) Abrir arquivo /etc/environment

sudo vim /etc/environment


2) Coloque as seguintes linhas (2 linhas no total) no arquivo /etc/environment:

http_proxy=http://USUARIO:SENHA@IP:PORTA/
https_proxy=https://USUARIO:SENHA@IP:PORTA/



Aonde:

USUARIO: Usuário para fazer o login no servidor proxy
SENHA: Senha para fazer o login no servidor proxy

Observação: Se o servidor proxy não requerer usuário e senha, usar como:

http_proxy=http://IP:PORTA/
https_proxy=https://IP:PORTA/


3) Reiniciar as conexões de rede, execute o seguinte comando:

sudo /etc/init.d/networking restart



CONFIGURANDO O PROXY PARA O APT-GET e APTITUDE

Para configurar o proxy para funcionar nos softwares APT-GET e APTITUDE façam o seguinte:

1) Abrir arquivo /etc/apt/apt.conf

sudo vim /etc/apt/apt.conf



2) Coloque as seguintes linhas (4 linhas no total, para cada ";") no arquivo /etc/apt/apt.conf

Acquire::http::proxy "http://USUARIO:SENHA@IP:PORTA/";
Acquire::https::proxy "https://USUARIO:SENHA@IP:PORTA/";
Acquire::ftp::proxy "ftp://USUARIO:SENHA@IP:PORTA/";
Acquire::socks::proxy "socks://USUARIO:SENHA@IP:PORTA/";



Aonde:

USUARIO: Usuario para fazer o login no servidor proxy
SENHA: Senha para fazer o login no servidor proxy

Observação: Se o servidor proxy não requerer usuário e senha, usar como:

Acquire::http::proxy "http://IP:PORTA/";
Acquire::https::proxy "https://IP:PORTA/";
Acquire::ftp::proxy "ftp://IP:PORTA/";
Acquire::socks::proxy "socks://IP:PORTA/";



TESTES - ACESSO A INTERNET

1) No terminal do Linux, executar o seguinte comando:

wget http://www.josepojr.com

Aonde "http://www.josepojr.com" é URL de teste que pode ser qualquer site. E o comando wget, acessará o site na porta especificada (no caso 80, que é a porta HTTP padrão) fazendo uma requisição HTTP GET dentro do console.


2) Pode-se utilizar o comando ping:

ping www.josepojr.com


3) Ou pode-se utilizar o comando telnet:

telnet www.josepojr.com 80



TESTES - USO DE GERENCIADOR DE PACOTES APT-GET e APTITUDE

1) Execute o seguinte comando para atualizar os pacotes:

sudo apt-get update
sudo aptitude update


2) Atualizar pacotes com APTITUDE (Recomendável):

sudo aptitude safe-upgrade



REFERÊNCIAS:

http://pt.kioskea.net/faq/8815-reiniciar-a-interface-em-linha-de-comando
https://danjared.wordpress.com/2011/03/09/configurar-el-proxy-en-ubuntu/
https://www.gnu.org/software/wget/