接受与Windows Server 2012上运行的Solr / Jetty实例的远程连接

时间:2015-03-03 15:41:01

标签: solr jetty windows-server-2012 windows-firewall

我在Windows Server 2012上运行Solr 4.10.1 Jetty实例。 我使用随下载附带的简单示例Jetty版本,并通过运行java -jar start.jar(来自solr-4.10.1 \ example),我能够通过{{从Windows Server访问我的Solr实例1}}。

现在我想远程访问Solr / Jetty实例,即从另一台计算机访问。即我希望能够通过从远程客户端/计算机到http://localhost:8983/solr和/或http://<server IP>:8080/solr的HTTTP调用来访问在我的Windows服务器上运行的Solr实例。

我在我的Windows Server上创建了入站防火墙规则,接受本地端口8080上的任何远程地址,并且我已将jetty.xml上的jetty端口更改为8080,这很好(I可以从我的Windows Server访问http://<server_domain>:8080/solr上的Solr实例。 但是当我尝试将jetty主机更改为服务器的IP时,我无法再访问Solr核心集合 - 即核心选择器中没有集合,因此我无法对{{1 - 我只看到一个&#34;空白&#34; Solr接口。

我改变的jetty.xml部分看起来像这样:

http://localhost:8080/solr

首先 - 这是正确的做法吗?如果是的话,我做错了什么?如果不是,我该如何实现呢?我试图寻找方法来做到这一点,但我似乎无法找到任何好的资源。

1 个答案:

答案 0 :(得分:0)

这已经解决了。我还要做两件事: 1.让Jetty使用特殊的IP 0.0.0.0让它在所有接口上监听:

<Call name="addConnector">
  <Arg>
      <New class="org.eclipse.jetty.server.bio.SocketConnector">
        <Set name="host"><SystemProperty name="jetty.host" default="<0.0.0.0>"/></Set>
        <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
        <Set name="maxIdleTime">50000</Set>
        <Set name="lowResourceMaxIdleTime">1500</Set>
        <Set name="statsOn">false</Set>
      </New>
  </Arg>
</Call> 
  1. 在域防火墙上从客户端服务器上的端口8080 上打开HTTP流量。
  2. 现在,http://SERVER_DOMAIN_NAME:8080/solr可以访问此域中连接的所有计算机的Solr。