2012-03-31 156 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

相關問題