Фильтрация запросов по Apache - PullRequest
0 голосов
/ 29 апреля 2019

Мне нужно отклонить все запросы к Apache, но разрешить только определенный шаблон URL.

Это существующие серверы Linux, работающие под управлением Apache 2.4, Nodejs и т. Д. В настоящее время я использую <Location> для настройки proxypass в соответствии с URL. Например,

Пусть URL-адреса:

http://111.111.111.111/version1/something/continutes

http://111.111.111.111/version2/something/continutes

<Location /version1/>
    ProxyPass http://some.ip.address:3003/  retry=0 timeout=60 keepalive=On
    ProxyPassReverse http://some.ip.address:3003/
</Location>

<Location /version2/>
    ProxyPass http://some.another.ip.address:3004/  retry=0 timeout=60 keepalive=On
    ProxyPassReverse http://some.another.ip.address:3004/
</Location>

Таким образом, в соответствии с запрошенным шаблоном URL-адреса, я могу использовать прокси для разных портов и IP-адресов.

Что мне нужно, так это то, что я хочу отклонить все другие запросы, такие как:

http://111.111.111.111/ (четный /)

или

http://111.111.111.111/anyother/request

Я могу решить эту проблему в Nginx, используя местоположение (например, apache). и в конце я указываю:

  location / {

      deny all;
     return 403;
}

Но когда я подаю заявку на Apache следующим образом:

<Location /version1/>
    ProxyPass http://some.ip.address:3003/  retry=0 timeout=60 keepalive=On
    ProxyPassReverse http://some.ip.address:3003/
</Location>

<Location /version2/>
    ProxyPass http://some.another.ip.address:3004/  retry=0 timeout=60 keepalive=On
    ProxyPassReverse http://some.another.ip.address:3004/
</Location>

<Location />
    Order Allow, Deny
</Location>

Он отклоняет любые запросы, включая / version1 / и / version2 /

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

Спасибо, Привет

...