You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr 9.6.1本地启动正常但访问localhost:8983返回ERR_EMPTY_RESPONSE求助

Apache Solr 9.6.1启动后无法访问(ERR_EMPTY_RESPONSE)排查方案

问题概述

本地安装Apache Solr 9.6.1,启动日志显示服务已在8983端口运行,但访问localhost:8983或localhost:8983/solr/#/时返回ERR_EMPTY_RESPONSE。Docker环境下Solr可正常使用,但本地(含WSL、虚拟机)环境问题持续,已尝试重装、调整系统资源限制、修改Java堆内存、切换端口等操作,均未解决。

排查与解决步骤

1. 验证Jetty监听地址与访问方式

从solr.log可见,Jetty仅绑定了127.0.0.1:8983:

Started ServerConnector@878452d{HTTP/1.1, (http/1.1, h2c)}{127.0.0.1:8983}
  • 优先尝试用http://127.0.0.1:8983/solr/访问,避免localhost解析到IPv6导致的连接问题。
  • 若需要从外部访问,修改Solr监听地址为所有网卡:
    • 临时启动:./solr start -Djetty.host=0.0.0.0
    • 永久生效:在solr.in.sh中添加SOLR_HOST=0.0.0.0

2. 解决JVM共享内存分配失败警告

solr-8983-console.log中存在Failed to reserve shared memory警告,这可能导致JVM无法正常处理请求:

  • 禁用共享内存:在solr.in.sh的SOLR_JAVA_OPTS中添加参数:
    SOLR_JAVA_OPTS="$SOLR_JAVA_OPTS -XX:-UseSharedSpaces"
    
  • 调整系统共享内存限制(Linux/WSL环境):
    1. 临时生效:sysctl -w kernel.shmmax=1073741824(设置为1GB)
    2. 永久生效:编辑/etc/sysctl.conf,添加kernel.shmmax=1073741824,执行sysctl -p加载配置

3. 排查网络拦截问题

  • 用curl命令测试请求细节,确认请求是否到达服务:
    curl -v http://localhost:8983/solr/
    
    若输出显示连接超时/拒绝,检查本地防火墙规则,临时关闭防火墙重试;若浏览器访问异常但curl正常,排查浏览器代理设置。

4. 更换Solr安装目录(针对WSL环境)

当前Solr安装在WSL挂载的Windows目录/mnt/c/users/cosmin/Downloads/,可能存在文件系统权限或兼容性问题:

  • 将Solr解压到WSL本地目录,例如/home/cosmin/solr-9.6.1,赋予目录权限:
    chmod -R 755 /home/cosmin/solr-9.6.1
    
  • 重新启动Solr测试

5. 启用详细日志定位问题

  • 查看Solr的请求日志server/logs/2024_07_23.request.log,若日志中无请求记录,说明请求未到达Jetty;若有记录但无响应,进一步调整Jetty日志级别:
    在log4j2.xml中修改Jetty相关日志级别为DEBUG,重启服务后查看详细错误信息。

内容的提问来源于stack exchange,提问作者Cosmin Drăguşanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:34:52