У нас есть кластерная система 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-адресам передаваться в качестве параметра для белого списка