我正在使用 solr 4.10.3。它处于云模式,具有一个分片和三个节点(一个领导者和两个从属)。我必须把它投入生产。我的网站在需要与 solr 通信的 ajax/php 中。我担心安全问题。
- Solr 和 webserver 是否应该在同一系统上?我应该将它们放在单独的虚拟机上吗?
- 让 solr 直接访问开放互联网是否很好?如果不是我应该使用代理吗?
- 如果我必须使用代理,那么创建三个虚拟机是否很好,一个包含 Web 服务器,第二个 solr 和第三个代理?
我正在使用 solr 4.10.3。它处于云模式,具有一个分片和三个节点(一个领导者和两个从属)。我必须把它投入生产。我的网站在需要与 solr 通信的 ajax/php 中。我担心安全问题。
Solr 不适合面向公众(尽管已经取得了一些进展),所以我强烈建议将它作为一个整体在 Internet 上不可用,并在您的应用程序中编写一个小中间件来接收来自客户端应用程序的请求(您在其中进行 AJAX 调用),对其进行验证并将其传递到 Solr 中的正确端点。
这将使您的服务器更难使用您没有想到的其他 Solr 模块的虚假查询(例如文档集群,这可能是资源密集型的)过载,并且将关闭对更新、导入的任何访问或备份端点。
中间件(我猜它会为你用 PHP 编写)只会接受查询,确保它看起来没问题,将其转义并将其传递给 Solr,然后再将结果返回给用户。