Как ограничить IP-адреса в кластерной среде Solr с помощью IPAccessHandler? - PullRequest
0 голосов
/ 18 июня 2019

У нас есть кластерная система Solr (два экземпляра, работающие на двух серверах), где кворум поддерживается с помощью zookeeper.Мы можем получить доступ к Solr, нажав прямые URL-адреса сервера или общий URL-адрес балансировщика нагрузки.Нам нужно внести в белый список несколько IP-адресов, получающих доступ к этим трем URL-адресам

. Я уже попробовал описанные здесь шаги: Ограничение IP-адресов для Jetty и Solr

и здесь: http://lucene.472066.n3.nabble.com/How-To-Secure-Solr-by-IP-Address-td4304491.html

Проблема с первым подходом состоит в том, что я не могу добавить несколько IP-адресов для белого списка

Проблема со вторым подходом заключается в том, что он позволяет нескольким IP-адресам в массиве строк быть в белом спискеКогда мы обращаемся к Solr с помощью URL-адреса балансировщика нагрузки, он не идентифицирует IP-адреса из белого списка.Только если мы обращаемся к URL-адресам отдельных серверов, все работает нормально

Кроме того, я попытался вызвать метод addWhite, но это также не сработало, и Solr не удалось запустить.


    <New id="IPAccessHandler" 
    class="org.eclipse.jetty.server.handler.IPAccessHandler"> 
                   <Set name="white"> 
                     <Array type="String"> 
                       <Item>127.0.0.1</Item> 
                       <Item>-.-.-.-|/solr/techproducts/select</Item> 
                     </Array> 
                   </Set> 
                   <Set name="whiteListByPath">false</Set> 
                   <Set name="handler"> 
                     <New id="Contexts" 
    class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/> 
                   </Set> 
                 </New>

Это не 't работать с балансировщиком нагрузки


    <New class="org.eclipse.jetty.server.handler.IPAccessHandler">
           <Call name="addWhite">
             <Arg>xxx.xxx.xxx.xxx</Arg>
           </Call>
           <Set name="handler">
             <!-- here's where you put what was there before: -->
             <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
           </Set>
         </New>

Это не позволяет нескольким IP-адресам передаваться в качестве параметра для белого списка

...