如何配置jetty以允许从外部服务器进行访问?

时间:2012-03-31 18:01:57

标签: configuration solr jetty

我之前见过这个问题,没有好的答案,你如何配置jetty以允许从外部服务器访问?我刚刚开始使用solr和jetty,并使用了solr附带的示例jetty实例。

solr在localhost上正常运行,我可以从同一台服务器上的站点查询它。但是,我无法从另一台服务器访问solr实例。我在过去的几天里用谷歌搜索并阅读了相当多的内容,但是还没有发现什么样的游戏允许非本地主机访问solr。

根据我读过的内容,我尝试将以下行添加到示例/ etc / jetty.xml

<Set name="Host">0.0.0.0</Set> 

并且仍然没有得到外部回复

然后尝试了

<Set name="Host">x.x.x.x</Set>

其中x.x.x.x是我服务器的IP地址 和

<Set name="Host">host.domain.com</Set>

其中host.domain.com是我服务器的FQDN

这两个都导致了错误

java.net.BindException: Cannot assign requested address

当我开始。

我正在使用的启动命令是

sudo java -jar start.jar etc/jetty.xml

你可以指出我可以在这里阅读或勺子喂我,我不在乎。我只是想克服这个障碍,所以我可以继续学习如何设置和使用solr。

1 个答案:

答案 0 :(得分:0)

您应该添加一个名为clientaccesspolicy.xml的文件,以便跨域访问您的静态Web文件目录:

<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-methods="*" http-request-headers="*">
        <domain uri="http://*"/>
        <domain uri="https://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

您应该使用以下代码将静态目录设置为jetty:

ResourceHandler staticHandler = new ResourceHandler();
staticHandler.setResourceBase("static/dir");
handlers.addHandler(staticHandler);
相关问题