所以我已经在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这个问题可能在别的地方。