2012-03-31 158 views
1

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

solr在localhost上运行良好,我可以从同一台服务器上的站点查询它。但是,我无法从另一台服务器访问solr实例。在过去的几天里,我已经搜索了一下并阅读了很多内容,但一直未能发现让jetty允许非本地主机访问solr的功能。

基于我读过,我曾尝试添加以下行例如,/ etc /的jetty.xml

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

,仍然没有得到外部响应

然后试图

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

其中xxxx是我服务器的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。

回答

0

你应该添加一个名为clientaccesspolicy.xml为跨域访问您的静态网页文件目录下的文件:

<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> 

你应该设置你的静态目录使用此代码码头:

ResourceHandler staticHandler = new ResourceHandler(); 
staticHandler.setResourceBase("static/dir"); 
handlers.addHandler(staticHandler); 
+0

谢谢,我会试试看 – GregC 2012-04-04 19:06:41

相关问题