В каком порядке перенаправляются запросы из mod_jk в apache2?

#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 подобных тегов обрабатывается перед любым другим оператором