使 Solr 服务器可通过网络访问

使 Solr 服务器可通过网络访问

因此,我在 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 时,无法连接。如何让网络上的其他设备可以访问 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

答案1

您如何运行 Solr?在 Tomcat 下?我假设是这样,因为我知道如何限制在localhostTomcat 下,并且如果您只是撤消我限制它的操作,那么您就可以联网安装 Solr。

就我而言,我不允许 Tomcat 与外界打交道 - 我更喜欢 Apache 反向代理 - 因此我执行以下操作。

server.xml我在这里编辑 Tomcat :

/etc/tomcat6/server.xml

我查找Connector设置并添加address="127.0.0.1"将 Tomcat 安装锁定到 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 提供服务的,那么其他人就需要参与进来。

答案2

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

输出是什么:

netstat -anp | grep :8983

如果您看到127.0.0.1:8983::1:8983那是因为您的服务器没有监听外界。您可以通过编辑您正在使用的 Web 服务器的配置来纠正此问题。

否则,您发现0.0.0.0:8983问题可能出在其他地方。

答案3

如果您正在使用datastax,请将 和 更新cassandra.yamllisten_address:机器rpc_address:的 IP 地址,这样它就可以正常工作。

默认情况下,它被提及为localhost

相关内容