使Solr服务器可以在networking上访问

所以我已经在Linux服务器上安装了Solr,我想从另一个Web服务器和/或我的电脑访问它。

从Solar Server,我可以看到它正在运行

[root@solr ~]# wget -qO- http://localhost:8983/solr <html> <head> <link rel="stylesheet" type="text/css" href="solr-admin.css"> <link rel="icon" href="favicon.ico" type="image/ico"></link> <link rel="shortcut icon" href="favicon.ico" type="image/ico"></link> <title>Welcome to Solr</title> </head> <body> <h1>Welcome to Solr!</h1> <a href="."><img border="0" align="right" height="78" width="142" src="admin/solr_small.png" alt="Solr"/></a> <a href="admin/">Solr Admin</a> </body> </html> 

然而,将http://192.168.1.19:8983/solr/插入我的浏览器,或从我的Web服务器ping,无法连接。 如何让我的networking上的其他设备可以访问Solr?


 # netstat -anp | grep :8983 tcp 0 0 :::8983 :::* LISTEN 15138/java 

 $ telnet 192.168.1.19 8983 Trying 192.168.1.19... telnet: connect to address 192.168.1.19: Connection refused telnet: Unable to connect to remote host 

你如何运行Solr? 在Tomcat下? 我会这样做,因为我知道如何限制在Tomcat下的localhost ,如果你只是取消我所做的限制,那么你可以联网您的Solr安装。

在我的情况下,我不允许Tomcat与外部世界打交道 – 我更喜欢Apache反向代理 – 所以我做了以下工作。

我在这里编辑Tomcat server.xml

 /etc/tomcat6/server.xml 

我查找Connector设置并添加address="127.0.0.1" ,将Tomcat安装locking到127.0.0.1(又名:localhost)

 <Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> 

所以在你的情况下,我只是删除address设置如下所示:

 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> 

但是,再一次,不知道你的Solr实例如何被服务。 如果没有通过Tomcat提供服务,那么其他人需要join。

你能检查Solr服务器是否正在监听正确的接口?

什么是输出:

 netstat -anp | grep :8983 

如果你看到127.0.0.1:8983或者::1:8983这是因为你的服务器不听外面的世界。 您可以通过编辑您正在使用的networking服务器的configuration来更正此问题。

否则,如果你看到0.0.0.0:8983这个问题可能在别的地方。