Назад | Перейти на главную страницу

Как ограничить определенный URL-адрес с помощью обратного прокси-сервера Apache ajp

я использую Apache Reverse Proxy, ниже приведены некоторые из 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/

Теперь я хочу ограничить request url лайк http://mysite.com/admin/tools таким образом, чтобы он позволял доступ из определенных IP address только. Как я могу этого добиться?

РЕДАКТИРОВАТЬ:

Согласно вышеуказанному требованию этот ответ работает нормально. Предположим, я хочу разрешить доступ admin URL из одного или двух IP's и отдыхать IP's Я хочу перенаправить на index страница вместо показа forbidden error, как я могу это получить?

Что касается вышеуказанного требования, этот ответ работает нормально. Предположим, я хочу разрешить доступ к URL-адресу администратора с одного или двух IP-адресов и остальных IP-адресов, которые я хочу перенаправить на страницу индекса, а не показывать запрещенную ошибку, как я могу это получить?

Чтобы расширить ответ @ krist-van-besien, вы можете сделать это с помощью ErrorDocument для 403 Запрещено как это:

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

Обратите внимание, что у пользователя должны быть разрешения на просмотр страницы, на которую вы его перенаправляете. Для получения дополнительной информации вы можете проверить этот вопрос: Разрешение заблокированному IP-адресу для просмотра 403 ErrorDocument

Какую версию apache вы используете? Один из способов ограничить доступ к ресурсам на основе URL-адреса - использовать

Например:

<Location /admin/tools>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.34
</Location>

Чтобы расширить этот сценарий для применения к конечной точке веб-службы RESTful, вместо вызова конечной точки с веб-страницы.

Есть ли способ проксировать запросы с веб-страницы локального сервера и пересылать их на адрес веб-службы, а также разрешать локальным внутренним сетевым запросам (разработчикам) доступ к конечной точке веб-службы, но при этом ограничивать прямые внешние запросы конечной точки WS?

Например, если веб-служба работает на Tomcat (порт 8080), и мы используем mod_proxy для перенаправления запросов apache с веб-страницы на порт 80 -> tomcat: 8080 / webservice в вызовах службы веб-страницы.

        <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

Когда я пытаюсь это сделать, он блокирует весь доступ к конечной точке WS, включая запрос веб-страницы, идущий через конечную точку прохода прокси.