#filter #apache2 #mod-jk #authz
#Фильтр #apache2 #mod-jk #authz
Вопрос:
Я хочу разрешить запросы с локального хоста на один URL-адрес и пересылать все остальное в другую службу. Раньше я делал это без запроса localhost, и это работало. Но теперь кажется, что, хотя фильтр localtion совпадает, как показано, с предоставленным сообщением, используя журналы трассировки из authz_core:trace8
, он перенаправляет на службу, которую я не хочу:
45 <Location /api/link1/>
46 JkMount Service1
47 <RequireAny>
48 Require local
50 </RequireAny>
51 </Location>
52 # JkMount /api/link1/* Service1
53
55 JkMount /api Service2
56 JkMount /api/* Service2
Итак, учитывая эту конфигурацию, я понимаю, что я говорю, что если запрос отправляется на /api/link1
, он должен перенаправить запрос на мой Service1, а все остальное с /api*
должно идти на Service2.
По какой причине я получаю запросы из /api/link1
в Service2 и перед добавлением реквизита местоположения, как показано в прокомментированной строке 52, он работал?
Ответ №1:
Вы должны попробовать сделать это таким образом:
<Location /api/link1/>
JkMount Service1
<RequireAny>
Require local
</RequireAny>
</Location>
# JkMount /api/link1/* Service1
JkMount /api Service2
JkMount /api/* Service2
JKUnMount /api/link1 Service2
У меня всегда было ощущение, что JkMount вне любых Location
или LocationMatch
подобных тегов обрабатывается перед любым другим оператором