如何禁用Solr的shardsWhitelist?使用shards参数时遭遇403错误
解决Solr使用shards参数时的403白名单校验错误
别着急,这个问题我之前也碰到过,你遇到的403错误是因为Solr默认启用了分片白名单校验机制——当你在非ZooKeeper集群模式下直接使用shards参数时,就会触发这个安全限制。下面是几种不同部署场景下的具体禁用步骤,选适合你的方式就行:
方法一:启动时临时添加JVM参数(单次生效)
如果是通过命令行直接启动或重启Solr,直接在命令里追加-Dsolr.disable.shardsWhitelist=true参数:
- 启动Solr:
bin/solr start -Dsolr.disable.shardsWhitelist=true - 重启Solr:
bin/solr restart -Dsolr.disable.shardsWhitelist=true
方法二:修改启动配置文件(持久化生效)
如果希望每次Solr启动都自动应用这个设置,不需要每次手动加参数,可以修改Solr的启动配置文件:
Linux/macOS系统
- 打开Solr安装目录下的
bin/solr.in.sh文件 - 找到
SOLR_OPTS的配置行,将禁用参数添加进去:SOLR_OPTS="$SOLR_OPTS -Dsolr.disable.shardsWhitelist=true" - 保存文件后重启Solr服务
Windows系统
- 打开Solr安装目录下的
bin/solr.in.cmd文件 - 找到
SOLR_OPTS的配置行,添加禁用参数:set SOLR_OPTS=%SOLR_OPTS% -Dsolr.disable.shardsWhitelist=true - 保存文件后重启Solr服务
方法三:Solr作为系统服务运行(比如systemd)
如果你的Solr是通过systemd管理的系统服务,需要修改服务配置文件:
- 打开systemd服务文件(通常路径为
/etc/systemd/system/solr.service) - 找到
ExecStart行,在启动命令末尾追加禁用参数:ExecStart=/opt/solr/bin/solr start -p 8983 -Dsolr.disable.shardsWhitelist=true - 重新加载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart solr
完成以上操作后,再去Solr Admin的Raw Query Parameter中添加shards参数,就不会再出现403的错误提示了。
内容的提问来源于stack exchange,提问作者akshay kale
相关产品推荐
相关产品推荐

