2013-09-16 2 views
0

У меня есть веб-приложение, которое должно использовать ElasticSearch, но мой хост не разрешает использовать Java-приложения.Можно дистанционно использовать Elasticsearch?

Можно ли поставить сервер ElasticSearch на другой компьютер (удаленный), чтобы webapp выполнял запросы на удаленный сервер? Если да, у ElasticSearch есть способ защитить данные на сервере ElasticSearch? Как защитить других пользователей от запросов на этот удаленный сервер ElasticSearch?

С наилучшими пожеланиями,

ответ

0

Да. Если у вас нет возможности переместить приложение на другой сервер, который разрешает Java, вы можете получить доступ к удаленному серверу с помощью вызовов JSON или клиента, если они доступны для вашей платформы (http://www.elasticsearch.org/guide/en/elasticsearch/client/community/current/clients.html).

Чтобы обеспечить безопасность, вы можете установить плагин для причала (https://github.com/sonian/elasticsearch-jetty), настроить SSL, аутентификацию и, возможно, добавить ограничение IP, например, создать файл jetty-iprestriction.xml с приведенным ниже содержимым и добавить ссылку на него в elasticsearch. YML.

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<Configure id="ESServer" class="org.eclipse.jetty.server.Server"> 


<Set name="handler"> 
    <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> 
    <Set name="handlers"> 
    <Array type="org.eclipse.jetty.server.Handler"> 
    <Item> 

    <New class="org.eclipse.jetty.server.handler.IPAccessHandler"> 
     <Call name="addWhite"> 
     <!-- allowed server ip --> 
     <Arg>xxx.xxx.xxx.xxx</Arg> 
     </Call> 
     <Set name="handler"> 
     <New class="com.sonian.elasticsearch.http.jetty.handler.JettyHttpServerTransportHandler" 
      id="HttpServerAdapterHandler"> 
      <Set name="transport"><Ref id="ESServerTransport"/></Set> 
     </New> 
     </Set> 
    </New> 

    </Item> 
     <Item> 
     <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/> 
     </Item> 
     <Item> 
     <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/> 
     </Item> 
    </Array> 
    </Set> 
    </New> 
</Set> 

</Configure> 
Смежные вопросы