为什么要代理 Elasticsearch?
Elasticsearch 是一款强大的搜索引擎,但它并非设计为直接暴露在网络上的。它旨在由其他 API 使用,然后这些 API 暴露在网络上。
通过直接与 Elasticsearch 交互,使用 Searchkit 构建搜索体验对于快速原型设计和开发来说是很好的。但是,当您准备好部署时,应该从网络代理 Elasticsearch。
在代理层,您可以添加安全凭据、速率限制、APM 和其他对生产环境至关重要的功能。
我是否需要代理 Elasticsearch?
视情况而定。对于内部使用或概念验证,可以直接与 Elasticsearch 交互。如果是针对高流量的网站,则应从网络代理 Elasticsearch。
如果您选择不从网络代理 Elasticsearch,请使用只读凭据连接。请参阅使用 API 密钥连接或使用用户连接。
使用 Searchkit 代理
Searchkit 提供了内置支持,可以使用 Node 应用从网络代理 Elasticsearch。它适用于您可以在自己的服务器上运行的任何基于 Node 的应用程序。
如果您目前不使用 Node,开始使用 Cloudflare Workers 是一个不错的选择,因为它成本低廉(免费计划每天获得 100,000 个请求)并且拥有良好的开发者体验。
我不想使用 Node
如果您不想使用 Node,您可以通过创建 POST /_msearch
API 并指定您的应用程序服务器在 host
属性中或构建一个自定义传输器 来代理 Elasticsearch。Searchkit 将继续从浏览器向代理发送 Elasticsearch 请求,然后代理将使用只读安全凭据和额外的过滤限制(如果需要)将请求转发到 Elasticsearch。