Como restringir uma determinada URL usando o proxy reverso do Apache ajp

1

Estou usando Apache Reverse Proxy , seguindo algumas configurações de Apache Virtual Host

ProxyRequests Off
<Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
</Proxy>
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
proxyPass /        ajp://127.0.0.1:8009/

Agora, quero restringir request url como http://mysite.com/admin/tools de tal forma que Ele deve permitir o acesso de IP address somente. Como posso conseguir isso?

EDITAR:

A partir do requisito acima esta resposta está funcionando bem, suponha que eu queira permitir acessar admin URL de um ou dois IP's e resto IP's Eu quero redirecionar para index page em vez de mostrar forbidden error , como posso obter isso?

    
por Mahesh.D 30.03.2013 / 13:47

3 respostas

1

Qual versão do apache você está usando? Uma maneira de restringir o acesso a recursos com base na URL é usar

Por exemplo:

<Location /admin/tools>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.34
</Location>
    
por 31.03.2013 / 13:48
1

As of above requirement this answer is working fine, Suppose I want allow to access admin URL from one or two IP's and rest IP's I want to redirect to index page instead of showing forbidden error,how can I get this ?

Para expandir a resposta do @krist-van-besien, você pode fazer isso com a ajuda de ErrorDocument para 403 Forbidden assim:

<Location /admin/tools>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.34
  ErrorDocument 403 /index.php
</Location>

Por favor, note que o usuário deve ter permissões para visualizar a página para a qual você está redirecionando. Para obter mais informações, você pode verificar essa questão: Permitir que o IP bloqueado exiba 403 ErrorDocument

    
por 06.04.2013 / 07:54
0

Para expandir esse cenário para aplicar a um ponto de extremidade de serviço da web RESTful ao chamar o ponto de extremidade de uma página da web.

Existe uma maneira de fazer proxy de solicitações da página da Web de um servidor local e encaminhá-las para o endereço de serviço da Web, além de permitir que as solicitações da rede interna local (desenvolvedores) acessem o terminal de serviço da Web e ainda restringir solicitações de terminal externo direto da WS?

Por exemplo, se o serviço da Web estiver sendo executado no Tomcat (porta 8080) e estivermos usando o mod_proxy para redirecionar as solicitações do apache da página da Web na porta 80 - > tomcat: 8080 / webservice em nossas chamadas de serviço da página da web.

        <Location /admin/tools>
            Order Deny,Allow
            Deny from all
            Allow from localhost
            Allow from 127.0.0.1
            Allow from *local.domain.com
        </Location>
        ProxyPass /admin/tools http://localhost:8080/admin/tools
        ProxyPassReverse /admin/tools http://localhost:8080/admin/tools

Quando eu tento isso, ele bloqueia todo o acesso do ponto de extremidade do WS, incluindo a solicitação da página da Web que passa pelo ponto de extremidade de passagem do proxy.

    
por 08.11.2013 / 00:52