Tomcat Solr超时


2

(Plesk 10.4 centos 5.8 linux apache2服务器,端口8080和Apache Solr上有Tomcat5)

我在请求domain.com:8080或www.domain.com:8080或ip.ad.dr.ess:8080时收到“连接已超时”

我能找到原因的所有理由似乎并非如此:

  • Plesk认为Tomcat运行正常,并将其列为活动服务。
  • 防火墙当前在端口8080上具有接受所有规则。
  • 在catalina的tomcat日志(/ var / log / tomcat5)中没有任何相关的内容-只是上次启动tomcat的一些内容。所有失败的请求都没有记录。
  • netstat -lnp | grep 8080给出以下内容,我相信这 意味着Tomcat正在侦听来自任何IP和任何端口的所有IP地址上对端口8080的请求(如果我错了,请更正我):

tcp     0      0 0.0.0.0:8080       0.0.0.0:*     LISTEN      4018/java

这涵盖了我可以找到的所有导致超时的原因-因此我必须缺少一些基本知识。

看来Tomcat正在运行,正在侦听正确的端口,正在获取适当的IP地址,没有被防火墙阻止,并且在接收到请求后会以日志中记录的方式出现故障(因此,我相信它可以做到)内存不足之类的东西)。

我完全不知道如何继续调试。我一定忽略了一些显而易见的事情。有人可以帮忙吗?


可能值得补充的是,Tomcat已正确安装,并且它和Solr在几周前运行良好。然后我发现Tomcat和Solr已停止,因此我重新启动了它,还为Solr添加了自动启动脚本。两者似乎都可以正常工作,两者都没有错误,但是以前起作用的相同URL只是超时。从那时起,AFAIK没有其他改变。希望能有所帮助。任何想法,调试技巧,备用日志文件都可以检查...欢迎提供任何线索。
user568458

Answers:


2

好吧,原来有防火墙,然后有防火墙

我很自然地认为,在Parrallels / Plesk / VZ防火墙UI中的端口上设置允许访问规则足以阻止防火墙阻止对该端口的访问。我错了,这个用户界面没有接触到基于iptables的防火墙的单独层,这阻止了除选定IP之外的所有IP对8080的访问。

在我的Plesk设置中(可能不确定于我的托管安排),解决方案是在规则中添加如下所示的规则/etc/firewall/include

$IPTABLES -I INPUT -p tcp --dport 8080 -s ip.ad.dr.ess -j ACCEPT
$IPTABLES -I OUTPUT -p tcp --sport 8080 -d ip.ad.dr.ess -j ACCEPT

...之后是service firewall restart(将ip.ad.dr.ess交换为要白名单的IP地址)。我敢肯定,在大多数托管安排中,您都可以使用/sbin/iptables而不是将这些行作为命令运行$IPTABLES,但是拥有自定义防火墙设置文件非常方便。

我猜这是“如果您给男人一个拐杖(例如Plesk),他会认为他可以依靠那个拐杖”的情况。


方便的命令,用于查看端口的基于iptables的访问规则:iptables -nL OUTPUT |grep 8080
user568458
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.