全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

yml配置

更新时间:2017-10-31 18:14:04

自定义CORS 跨域访问支持

如需了解更多设置,请移步elasticsearch 官方网站,查看 HTTP 相关信息。

配置信息

表格内的设置信息是 阿里云Elasticsearch 为支持HTTP协议开放的自定义配置。

以下字段配置为静态配置,不支持热部署,如您想生效以下某项配置,请将配置信息写入 elasticsearch.yml 文件。

配置项 描述
http.cors.enabled 跨域资源共享配置项。可启用禁用跨域资源访问。即Elasticsearch允许接收其他域资源下的浏览器向其发送请求. 设置为 true 即可使Elasticsearch处理 OPTIONS CORS请求 。如果发送的请求中的域信息已在http.cors.allow-origin 中声明,那Elasticsearch将会在头信息中附加 Access-Control-Allow-Origin 以响应跨域请求。设置为false (默认缺省值为false)即可使Elasticsearch忽略请求头中的域信息,Elasticsearch将不会以Access-Control-Allow-Origin信息头应答,以达到禁用CORS目的。如果客户端不支持发送附加域信息头的 pre-flight 请求,或者不校验从服务端返回的报文的头信息中的Access-Control-Allow-Origin 信息,那跨域安全访问将受到影响。如果Elasticsearch关闭CORS支持, 则客户端只能尝试通过发送 OPTIONS请求,以了解此响应信息是否存在。
http.cors.allow-origin 域资源配置项. 可设置接受来自哪些域名的请求。默认不允许且无配置。如果在该配置值前后添加 / ,则此配置信息将被识别为正则表达式。允许您使用正则方式兼容支持HTTPHTTPs 类域请求信息。比如 /https?:\/\/localhost(:[0-9]+)?/ ,则可响应符合此正则的请求信息。 * 被认定为合法配置,可被识别为使集群支持来自任意域名的跨域请求,这将给Elasticsearch 集群带来安全风险
http.cors.max-age 浏览器可发送OPTIONS 请求以获取CORS配置信息。 max-age 设置可设定浏览器对输出结果缓存保持时间。缺省设置为 1728000 秒 (20 天)。
http.cors.allow-methods 请求方法配置项. 默认设置值为: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers 请求头信息配置项. 默认设置值为: X-Requested-With, Content-Type, Content-Length
http.cors.allow-credentials 凭证信息配置项目。是否允许响应头中返回Access-Control-Allow-Credentials 信息。设置为 true 即可返回此信息。默认设定值为 false

以上配置依赖于集群网络设定Network settings

自定义远程索引重建白名单(安全访问)支持

索引重建组件支持用户在远端Elasticsearch 集群进行重建数据索引:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "username": "user",
  7. "password": "pass"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }

其中 host 必须包含支持协议, 域名, 和端口信息(如https://otherhost:9200). usernamepassword 参数为可选参数,如您所请求的远端Elasticsearch服务需使用Basic Authorization,请在请求中一并提供此参数信息。使用Basic Authorization 鉴权请使用https 协议,否则密码信息将以文本形式进行传输。

远程主机地址需在 elasticsearch.yaml 使用 reindex.remote.whitelist 属性进行声明,方可在远程使用此API功能。允许以 hostport 组合,并使用逗号分隔多个主机配置(例如:otherhost:9200, another:9200, 127.0.10.**:9200, localhost:**)。白名单不识别协议信息,只使用主机和端口信息用于实现安全策略设定。

此特性在您所能找到的任意远程Elasticsearch版本的服务中均可工作。此设置将允许您通过从陈旧的版本服务中索引数据到当前发布版本,以达到从任意版本Elasticsearch服务升级的目的。

如机器地址信息已经在白名单中进行设定,将不会验证和修改query,而是直接发送请求至远端服务。

==注意==从远端集群索引数据,不支持手动切片自动切片。如需了解更多,请参原文:手动切片自动切片

远端服务使用堆缓存索引数据,默认最大设定值为100mb。如果远端索引中包含大文档,请您将批量设定值设置为较小参数。

如下示例设定的批量数值为10,此值为最小值。

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200"
  6. },
  7. "index": "source",
  8. "size": 10,
  9. "query": {
  10. "match": {
  11. "test": "data"
  12. }
  13. }
  14. },
  15. "dest": {
  16. "index": "dest"
  17. }
  18. }

此接口允许使用socket_timeout 字段设定socket 读取超时时间,使用connect_timeout 字段设定连接超时时间。此超时参数默认值为 3s。

如下示例中,设定socket 读取超时为1min,连接超时时间为10s:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "socket_timeout": "1m",
  7. "connect_timeout": "10s"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }
本文导读目录