Configure o Apache para usar o proxy externo para conexão com a internet

4

No meu aplicativo, estou usando a seguinte regra de reescrita:

RewriteRule ^/ajax(.*) http://api.externalserver.com/$1 [P,QSA,L]

Agora, o problema é que minha rede corporativa exige que eu use o proxy HTTP para conexões de internet externas.

Para ilustrar, isso não funciona:

curl -v http://api.externalserver.com/login

Mas isso funciona:

curl -v -x 11.22.11.22:8585 http://api.externalserver.com/login

Como posso fazer o Apache usar o proxy corporativo para solicitações de internet externas?

    
por warpech 18.03.2011 / 11:05

5 respostas

10

Acho que você deseja ativar mod_proxy_http e definir:

ProxyRemote * http://11.22.11.22:8585

em algum lugar na sua configuração virtualhost.

    
por 20.03.2011 / 19:29
2

Você pode instalar o proxy SQUID no modo transparente para fazer proxy de todo o tráfego que vai da máquina local para a Internet.

Para esta primeira regra de adicionar iptables

iptables -t nat -A OUTPUT -p tcp --dport 5555 -j DNAT --to 127.0.0.1:3128

isto irá redirecionar todas as conexões http de saída para o squid local. Em seguida, configure o squid de acordo com este guia e configure-o adicionalmente

cache_peer 11.22.11.22 parent 8585 0 no-query default
never_direct allow all

Isso é tudo. Todo o tráfego de saída para a porta 80 passará pelo proxy da sua organização

    
por 21.03.2011 / 20:22
1

Você tentou o tunelamento http, via proxytunnel ou saca-rolhas?

Você precisa configurar um vhost para o seu Apache e usá-lo como um proxy distante.

Talvez a adaptação disso possa ajudar você: link

    
por 18.03.2011 / 11:15
1

Acho que o que você está procurando é mod_proxy e mod_proxy_http especificamente:

link

    
por 20.03.2011 / 15:54
0

Depois de definir ProxyRemote e reiniciar httpd , se você recebeu o "[erro] (13) Permissão negada: proxy: HTTP: tentativa de conexão para falha", você também precisa executar o seguinte:

setsebool -P httpd_can_network_connect=1
    
por 12.08.2013 / 05:09